Определите, при каком наименьшем введённом значении переменной s программа выведет число 128. Для Вашего удобства программа представлена на четырёх языках программирования.
| Бейсик | Python |
|---|---|
DIM S, N AS INTEGER INPUT X N = 4 WHILE S < 37 S = S + 3 N = N * 2 WEND PRINT N
| s = int(input()) n = 4 while s < 37: s = s + 3 n = n * 2 print(n)
|
| Паскаль | Алгоритмический язык |
var s, n: integer; begin readln(s); n := 4; while s < 37 do begin s := s + 3; n := n * 2 end; writeln(n) end.
| алг нач цел n, s ввод s n := 4 нц пока s < 37 s := s + 3 n := n * 2 кц вывод n кон |
| Си++ | |
#include <iostream> using namespace std; int main() { int s; cin >> s; int n = 4; while (s < 37) { s = s + 3; n = n * 2; } cout << n << endl; return 0; }
| |
Заметим, что число 128 это 2 в седьмой степени. Значит, цикл должен выполниться 5 раз, поскольку изначально n = 4. Тогда ответ — 37 − 3 · 5 = 22.
Ответ: 22.
Приведём другое решение на языке Python.
for i in range(10000):
s = i
n = 4
while s < 37:
s = s + 3
n = n * 2
if n == 128:
print(i)
break
Приведем решение Михаила Глинского.
Составим программу на языке Паскаль для перебора возможных значений переменной s и выполнения для каждого значения заданного алгоритма. Выведем первое значение, при котором получится 128.
var s,i, n: integer;
begin
for i:=1 to 1000 do begin
s:=i;
n := 4;
while s < 37 do begin
s := s + 3;
n := n * 2
end;
if n=128 then begin writeln(i) break; end;
end;
end.

