Теория:

Характеристика задания
 
1. Тип ответа: числовой ответ.
 
2. Структура содержания задания: дана программа, записанная на четырёх языках программирования.
 
3. Уровень сложности задания: базовое.
 
4. Примерное время выполнения: \(4\) минуты.
 
5. Количество баллов: \(1\).
 
6. Требуется специальное программное обеспечение: необязательно.
 
7. Задание проверяет знание основных конструкций языка программирования, понятия переменной, оператора присваивания.
  
Пример задания
 

1.png

Рис. \(1\). Пример задания 


Как решать задание?
 
Данное задание можно решать несколькими способами: логическими рассуждениями или с помощью программирования.
Мы рассмотрим вариант решения с помощью языка программирования Python.
 
Вспомнить, что такое оператор присваивания, можно тут.
 
Вспомнить, что такое ветвление, можно тут.
 
Вспомним, что переменная — это именованный участок памяти, в котором хранятся данные. Значение переменной — информация, хранящаяся в переменной. В переменной может храниться текст, число и т. д.
Имя переменной:
  • может содержать только латинские буквы \(a\)-\(z\), \(A\)-\(Z\), цифры и символ нижнего подчёркивания _;
  • не может начинаться с цифры.
Оператор присваивания обозначается знаком «\(=\)». При этом он сначала вычисляет значение, стоящее в правой части, и сохраняет в переменную, находящуюся в левой.
Если в левой части стоит переменная, которая не существовала до этого, то она создаётся.
Пример:
\(n=5\)            #в переменной \(n\) хранится число \(5\)
\(N=\) ”пять”  #в переменной \(N\) хранится строка «пять»
Python — регистрозависимый  язык программирования.
\(n\) и \(N\) — две совершенно разные переменные.
  
Вспомним управляющие конструкции в Python
  
Цикл, повторяющийся определённое количество раз (for):  
  
 for название переменной in  range  (\(n\), \(m\), \(z\)):
    тело цикла   
  
Функция range (\(n\), \(m\), \(z\)) генерирует последовательность чисел от \(n\) до \(m-1\) c шагом \(z\) (необязательный параметр: автоматически используется шаг \(1\), если не указать другой), а цикл for перебирает эту последовательность.  
Пример:
for \(i\) in  range (\(10\),\(15\)):
    print (\(i\))                    #на экран будут выведены числа: \(10\), \(11\), \(12\), \(13\), \(14\)

Цикл, повторяющийся, пока верно некоторое условие (while):

  

  while  условие:
       тело цикла

Пример:
\(n=1\)
while \(n\) \(<=5\):
    print (\(n * n\))    #на экран будут выведены числа: \(1\), \(4\), \(9\), \(16\), \(25\)
    \(n = n+1\)
Для прерывания цикла используется оператор break, управление переходит к следующей строке после цикла.
  
Решение (перебор с помощью программы)
  
2.png
Рис. \(2\). Условие задачи
 
Организуем цикл for, в котором будем перебирать значения \(s\), а после выполнения цикла while проверим с помощью условного оператора if, равно ли значение \(n\) \(64\).
 
\(s=int(input())\)
Заменим:
for \(s\) in  range \((500,0,-1)\):
    \(s0=s\) 
Из строки \(5\) видим, что при каждом шаге цикла
значение переменной \(s\) увеличивается на \(5\).
Из строки \(4\) видно, что цикл работает, пока \(s<51\), 
следовательно, наибольшее подходящее — \(50\).
В строке \(2\) стартовое значение \(s\) уменьшили в \(10\) раз.
Поэтому будем подставлять каждое число в диапазоне от (\(50*10\)) до \(0\) в алгоритм с помощью цикла for.
Обрати внимание, что здесь обязательно нужно ввести новую переменную \(s\)\(0\), поскольку переменная \(s\) изменяется в ходе работы внутреннего цикла
 \(s=s//10\)       
\(n=1\)           
while \(s<51\):    
        \(s=s+5\)  
        \(n=n*2\)
Основная часть программы остаётся без изменений
print(\(n\))
Заменим:
if \(n==64\):
    print(\(s0\))
Программа будет последовательно выводить все числа,
при вводе которых исходный алгоритм печатает \(64\).
Так как требуется найти наибольшее число, то первое
выведенное число будет искомым ответом
 
Итак, мы получили программу:
 
решение дем.PNG
Рис. \(3\). Изменённая программа
 
Правильный ответ: \(259\).
Источники:
Рис. 1. Пример задания. © ЯКласс.
Рис. 2. Условие задачи. © ЯКласс.
Рис. 3. Изменённая программа. © ЯКласс.