Какое максимальное значение переменной s, подаваемое на вход программе, для которого в результате работы программы на экран будет выведено значение 64? Для Вашего удобства программа представлена на четырёх языках программирования.
| Python | С++ | |
|---|---|---|
n = 1024 s = int(input()) while s >= 5: s = s - 5 n = n // 2 print(n)
| #include <iostream> using namespace std; int main() { int n, s; n = 1024; cin >> s; while(s >= 5) { s = s - 5; n = n / 2; } cout << n; return 0; }
| |
| Паскаль | Алгоритмический язык | |
var n, s: integer; begin n := 1024; readln(s); while s >= 5 do begin s := s - 5; n := n div 2 end; writeln(n) end.
| алг нач цел s, n n := 1024 ввод s нц пока s >= 5 s := s - 5 n := div(n, 2) кц вывод n кон | |
Заметим, что после работы алгоритма число 1024 преобразуется в 64. На каждой итерации значение уменьшается вдвое. Следовательно, выполнится 4 итерации цикла. Имеем:
Ответ: 24.
Приведём другое решение на языке Python.
for i in range(100,1, -1):
n = 1024
s = i
while s >= 5:
s = s - 5
n = n // 2
if n == 64:
print(i)
break

