Задача
Определите, при каком наименьшем введённом значении переменной s программа выведет число 64. Для Вашего удобства программа представлена на четырёх языках программирования.
Решение
Из условия видно, что необходимо найти наименьшее значение переменной s, после обработки которой программа выведет число 64.
Рассмотрим алгоритм.
Из программы видно, что начальные значения переменной n равно единице, а переменная s - вводится с клавиатуры.
Цикл заканчивается, когда нарушается условие s<51. Минимальное значение s при котором нарушается условие - 51. После окончания цикла выводится значение переменной n, то есть количество шагов цикла определяется изменением переменной n. Таким образом, задача сводится к тому, чтобы определить число шагов цикла, необходимое для того, чтобы значение n стало равным 64.
С каждым шагом цикла значение n увеличивается в 2 раза, так что фактически n – это степень числа 2, где показатель степени - число шагов цикла. Чтобы получить 64 двойку нужно возвести в 6 степень.
За каждый шаг цикла значение переменной s увеличивается на 5, поэтому начальное значение s определяется через уравнение:
Мы рассматриваем предпоследний шаг цикла, это позволит вычислить максимально возможное значение s.
Учитывая, что в самом начале программы происходит целочисленное деление s на 10, то
Т.к. мы ищем максимальное значение s, то
Ответ: 21.
Решение (программа, Python)
maxs = 0
for i in range(1,1001):
s = i
s = s // 10
n = 1
while s < 51:
s = s + 5
n = n * 2
if n == 64:
maxs = i
print(maxs)