М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
JoYCasinI2558
JoYCasinI2558
03.07.2021 02:32 •  Информатика

Задача 2: Гирьки У Васи есть чашечные весы и набор гирек. Правда, в наборе предусмотрены гирьки только двух различных весов: 1 и 2 грамма. Набор не пустой, но гирьки одного из весов могут быть потеряны и полностью отсутствовать. Вася пытается разложить все имеющиеся гирьки на обе чаши весов так, чтобы весы оказались в равновесии (то есть разложить все гирьки на две кучки одинакового веса). Оказалось, что у него имеется n1 гирек весом 1 грамм и n2 гирек весом 2 грамма. Получится ли у него это?

Входные данные
В первой строке входных данных записано целое число n1, во второй — n2 (n1 ≥ 0, n2 ≥ 0, 0 < n1 + n2 ≤ 2×109).

Выходные данные
Если разложить гирьки на две равные кучки возможно, пограмма должна вывести слово Yes, в противном случае — No.

Если гирьки разложить возможно, то во второй строке требуется вывести два целых числа в указанном порядке: количество гирек весом 1 грамм и количество гирек весом 2 грамма в одной из кучек в разложении. Если вариантов разложения несколько, требуется вывести любой из них.

Система оценки
Решение, правильно работающее, когда входные числа не превосходят 10, будет оцениваться в

Примеры
Ввод

Вывод

Пояснение

2
1

Yes
0 1

Также правильным ответом будет
Yes
2 0

1
2

No

👇
Ответ:
nata04021980
nata04021980
03.07.2021

n1=int(input())

n2=int(input())

if n1%2==0:

   print('Yes')

else:

   print('No')

Насколько я понимаю, это должно быть верно

4,7(1 оценок)
Ответ:

Объяснение:

n1=int(input())

n2=int(input())

if (n1+n2*2)%2==1:

   print("No")

else:

   print("Yes")

   if ((n1+n2*2)//2)%2==0:

       if n2*2<n1:

           print((n1+n2*2)//2-n2*2,n2)

       elif n2*2>n1:

           print(n1,((n1+n2*2)//2-n1)//2)

       else:

           print(n1,0)

   else:

       if n2*2<n1:

           print((n1+n2*2)//2-n2*2,n2)

       elif n2*2>n1:

           print(n1-1,((n1+n2*2)//2-n1+1)//2)

       else:

           print(n1,0)

4,4(7 оценок)
Открыть все ответы
Ответ:
Зайчик010101
Зайчик010101
03.07.2021
Const
n=10; m=7;
var
j,i,i_max,s,max:integer;
a:array[1..n,1..m]of integer;
begin   
 for i:=1 to n do     
    begin         
           writeln; s:=0;i_max:=i;max:=-32768;             
           for j:=1 to m do               
                begin                       
                   a[i,j]:=random(100)-50;                       
                   write(a[i,j]:4);                     
                          s:=s+a[i,j];               
               end;               
                 writeln('i: ',i,'  ',s);            
                    if s>max then             
                               begin               
                                    i_max:=i;               
                                    max:=s;             
                               end;       
                end;
  writeln; 
   writeln(i_max,'  s: ',max);
end.
4,8(29 оценок)
Ответ:
Nastia2k
Nastia2k
03.07.2021
// PascalABC.NET 3.2, сборка 1367 от 20.12.2016
// Внимание! Если программа не работает, обновите версию!

function NOK(a,b:integer):integer;
begin
  if a=b then Result:=a
  else begin
    var c:=a*b;
    repeat
      if a>b then a:=a-b else b:=b-a;   
    until a=b;
    Result:=c div a
  end
end;

begin
  var n:=ReadInteger('N=');
  var L:=new List<integer>;
  var m:=n;
  while m>0 do begin
    var d:=m mod 10;
    L.Add(d);
    m:=m div 10
    end;
  var a:=L.Where(x->x<>0).Distinct.ToArray;
  var k:=a[0];
  if a.Length>1 then
    for var i:=1 to a.Length-1 do k:=NOK(k,a[i]);
  Range(k,n,k).Println;
end.

Пример
N= 227
14 28 42 56 70 84 98 112 126 140 154 168 182 196 210 224

Как это работает?
Если число делится на каждое из нескольких чисел, то оно делится и на НОД этих чисел, Функция НОД позволяет найти НОД пары чисел, а её применение несколько раз позволит найти НОД для необходимого набора чисел.
Создаем объект типа "список целых" и цифра за цифрой помещаем туда числа, совпадающие с цифрами заданного числа n. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Далее вычисляем НОД для всех элементов полученного массива.
Понятно, что первым в последовательности искомых чисел будет стоять НОД, а далее пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
4,7(57 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ