Программу надо сформатировать и тогда её структура будет видна лучше. А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
var s, k: integer; label met; begin s:=-12; k:=90; Writeln('s=',s,', k=',k); s:=s+10; Writeln('s=',s); met: Writeln('Метка met:'); k:=k+10; Write('k=',k); if k<200 then s:=50 else s:=s+k; Writeln(', s=',s); if k<200 then goto met; Writeln('Результат: s=',s) end.
Если вынуть 98 конфет, то будут конфеты всех 3 видов. Пусть у нас по n конфет каждого вида. Тогда может так получиться, что мы вынем 2n конфет, и они будут только 2 видов. И только, вынув (2n+1)-ю конфету, мы получим все три. 2n+1 = 98 2n = 97. Значит, конфет одного и другого вида по [97/2] = 48, а конфет третьего вида 49. Пусть ирисок и леденцов по 48, а шоколадных 49. Вынув 48 ирисок и 48 леденцов (96 конфет), мы получим 2 вида. Вынув 48 ирисок и 49 шоколадных (97), мы получим 2 вида. Вынув 48 леденцов и 49 шоколадных (97), мы получим 2 вида. И только вынув 98-ую (в 1 случае 97 и 98), мы получим 3 вида. ответ: всего конфет было 48 + 48 + 49 = 145.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку