На дошці виписані числа від 1 до 2150.
Кожну хвилину кожне число піддається наступній операції: якщо число націло ділиться на 100, то його ділять на 100, якщо ж не ділиться, то від нього віднімають 1. Знайдіть найбільше серед чисел на дошці через 87 хвилин.
Спочатку пробуйте самостійно, а потім можете перевірити свою відповідь, переглянути розумне математичне пояснення і код перебору на python
Логічне пояснення:
Всі числа, дві останні цифри яких - 86 або менше, за 87 хвилин встигнуть перетворитися в числа, що закінчуються на 00, і наступним кроком зменшаться в 100 разів. У підсумку все такі числа через 87 хвилин виявляться не більшими, ніж 2100/100 = 21.
Ті ж числа, які закінчуються на 87 і більше, за 87 хвилин зменшаться на 87. Найбільше з таких чисел - 2099, і воно через 87 хвилин перетвориться в 2012.
Код повного перебору на python - у мене вісім рядків:
s = [x for x in range(1,2151)]
for x in range(87):
for i, j in enumerate (s):
if j % 100 == 0:
s[i] = j // 100
else:
s[i] = j - 1
print(max(s))