В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Сос1111111
Сос1111111
29.09.2022 09:42 •  Информатика

Решить на языке питон Алиса и Боб получили три большие кучки конфет в качестве подарка. Теперь они хотят разделить эти конфеты между собой настолько честно, насколько это возможно. Чтобы сделать это, Алиса забирает одну кучку с конфетами себе, затем Боб забирает одну из других двух кучек себе. Последняя кучка делится между Алисой и Бобом так, как они хотят: например, возможно, что Алиса возьмет всю кучку себе, а Боб не получит из нее ничего. После того как они возьмут все конфеты из кучек, если у Алисы будет больше конфет, чем у Боба, она выкидывает некоторые конфеты таким образом, что количество ее конфет становится равным количеству конфет Боба. Конечно, Боб сделает то же самое, если у него больше конфет. Алиса и Боб хотят иметь как можно больше конфет каждый, и будут планировать процесс разделения конфет соответственно посчитайте максимально возможное количество конфет, которое может оказаться у Алисы после процесса их разделения (конечно же, у Боба будет столько же конфет). Формат ввода Единственная строка запроса содержит три целых числа a , b и c ( 1 ≤ a , b , c ≤ 1 0 в 16 степени ) — количество конфет в первой, второй и третьей кучках соответственно. Формат вывода Выведите ответ - максимальное количество конфет, которое Алиса может иметь после разделения, если и Алиса, и Боб будут действовать оптимально (конечно же, Боб будет иметь такое же количество конфет).

Показать ответ
Ответ:
Like923
Like923
05.08.2020 03:06

uses crt;

var n,m,i,p:longint;

   s,k:byte;

begin

clrscr;

repeat

write('Введите натуральное число N=');

readln(n);

until n>0;

m:=n;

s:=0;

while m>0 do

begin

 s:=s+m mod 10;

 m:=m div 10;

end;

writeln('Числа от 1 до ',n-1,', у которых произведение цифр=',s);

k:=0;

for i:=1 to n-1 do

begin

 m:=i;

 p:=1;

 while m>0 do

  begin

   p:=p*(m mod 10);

   m:=m div 10;

  end;

 if p=s then

  begin

   k:=1;

   write(i,' ');

  end;

end;

if k=0 then write('Таких чисел нет');

readln

end.

Объяснение:

0,0(0 оценок)
Ответ:
stepanoganezov
stepanoganezov
26.04.2022 10:09

program raf105;

const

 n = 10;

var

 d:array[1..n] of integer;

 min,max,sum,notmax,i: integer;

begin

max:= -10000;

min:= 10000;

writeln('Заполните массив');

for i:=1 to n do

begin

 readln(d[i]);

 sum+= d[i];

 if max<d[i]

   then max:= d[i];

end;

for i:=1 to n do

begin

 if d[i]<>max

   then notmax+= 1;

 if (d[i]>sum) and (d[i]<min)

   then min:= d[i];

end;

if min<>10000

 then writeln('Минимальный среди элементов, больших суммы: ',min)

 else writeln('Минимальный среди элементов, больших суммы: Не найдено');

writeln('Количество элементов, не равных максимальному: ',notmax);

end.

Язык PascalABC
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота