Задача 3: Ремонт забора
Забор состоит из N одинаковых вертикальных досок. Некоторые из досок сгнили и нуждаются в замене, для каждой доски известно, нужно ли её заменить. Для ремонта забора можно использовать продающиеся в магазине щиты, которые бывают L разных видов: шириной в 1 доску, в 2 доски, ..., в L досок. Щит нельзя разрезать на части, то есть одним щитом можно заменить не более любых L подряд идущих досок. При этом можно менять не только сгнившие доски, но и хорошие.
Значит при расшифровке надо сдвигаться, наоборот, на 7 букв назад, к началу алфавита. Здесь пронумерованный алфавит.
шифр Ц Т Ж Ф Я Л Щ
№ 24 20 8 22 33 13 27
№ - 7 17 13 1 15 26 6 20
буква П Л А Н Ш Е Т
ответ: Планшет
Приложение: пронумерованный алфавит
А1 Б2 В3 Г4 Д5 Е6 Ё7 Ж8 З9 И10 Й11 К12 Л13 М14 Н15 О16 П17 Р18 С19 Т20 У21 Ф22 Х23 Ц24 Ч25 Ш26 Щ27 Ъ28 Ы29 Ь30 Э31 Ю32 Я33
Год високосный, если 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