2. Составьте формулу, которая будет по номеру года (натуральному числу) определять количество дней в нем. Формула не может содержать условных конструкций, а только арифметические операции над номером года N и числовыми константами. Можно использовать операции +, −, * (умножение), // (деление нацело), % (остаток от деления нацело).
Answers & Comments
Verified answer
Номера високосных годов делятся на 4, но не делятся на 100, или делятся на 400. В високосном году 366 дней, в невисокосном 365.Год високосный, если N делится на 400 (остаток от деления N % 400 равен 0), или N делится на 4, но не на 100 (N % 4 равно 0, а N % 100 нет). Напишем выражение, которое принимает значение 1, если год високосный, и 0 если не високосный.
(400 - (N % 400)) // 400 равно 1, если N делится на 400, иначе 0
(100 - (N % 100)) // 100 равно 1, если N делится на 100, иначе 0
(4 - (N % 4)) // 4 равно 1, если N делится на 4, иначе 0
Осталось заметить, что выражение
(400 - (N % 400)) // 400 - (100 - (N % 100)) // 100 + (4 - (N % 4)) // 4
подходит: если N не делится на 4, то все 3 слагаемых равны 0, если делится на 4, на не делится на 100, то равно 0 - 0 + 1 = 1, если делится на 100, но не на 400, то равно 0 - 1 + 1 = 0, если делится на 400, то 1 - 1 + 1 = 1.
Количество дней отличается от написанного выше на 365.
Ответ: 365 + (400 - (N % 400)) // 400 - (100 - (N % 100)) // 100 + (4 - (N % 4)) // 4