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

