Решить по информатике 8 класс
программу напишу я сам, но вот как решить ее? по заданной дате надо сразу сказать кто победит, тойсть если называть одно и тоже число всегда будет побеждать тотже игрок
играют двое. задаётся какая-то дата 2020 года. каждый игрок на своём ходе называет более позднюю дату, увеличивая на 1 или 2 либо день в месяце, либо месяц, но не то и другое сразу. при этом сочетание дня и месяца должно оставаться датой. игрок, назвавший 31 декабря, проигрывает. оба играют наилучшим образом. исходя из заданной даты вывести, кто выиграет.
входные данные
в первой строке находятся числа, обозначающие день и месяц.
выходные данные
вывести 1, если выигрывает первый (начинающий) игрок, или 2 - в противном случае.
примеры
входные данные
30 12
выходные данные
2
d=1
Объяснение:
Программа 12212 дает результат 37. Идем с конца
Последняя двойка означает что было прибавлено d и получилось 37. Предпоследняя единица означает, что перед этим число было возведено в квадрат. Ближайшие квадраты чисел это 36 (6²) или 25 (5²).
Предположим что до возведения в квадрат это было число 6, которое потом возвели в квадрат, получили 36 прибавили d и получили 37. Тогда d=1. Двигаемся дальше к началу. 6 получилось после того как два раза прибавили d (Две двойки на 2 и 3 месте в программе). Если мы предположили что d=1, то до этих прибавлений число было 6-1-1=4.
4 получилось после выполнения команды 1, то есть после возведения начального числа в квадрат. Очевидно что начальное число было 2, что соответствует условию.
Значит наше предположение что d=1 верное.
ответ: d=1
Удивляюсь, как она у меня заработала)) хаха
program example;
var x,y,z,a,b,c,i,k,l:integer;
begin
writeln ('Введите три числа');
write ('x = '); readln (x);
write ('y = '); readln (y);
write ('z = '); readln (z);
if ((x mod 3) or (x mod 2)) =0
then i:=x else i:=0;
if i<>0 then a:=1;
if ((y mod 3) or (y mod 2)) =0
then k:=y else k:=0;
if k<>0 then b:=1;
if ((z mod 3) or (z mod 2)) =0
then l:=z else l:=0;
if l<>0 then c:=1;
writeln ('Количество четных чисел, делящихся на три, равно ',a+b+c);
writeln ('Сумма четных чисел, делящихся на три, равна ',i+k+l);
end.