Определите, при каком наименьшем введённом значении переменной s данная программа выведет число 96. Для Вашего удобства программа представлена на четырёх языках программирования.
| Python | Си++ | |
|---|---|---|
s = int(input()) s = s // 7 n = 1 while s < 255: if (s+n) % 2 == 0: s = s + 11 n = n + 5 print(n)
| #include <iostream> using namespace std; int main() { int s, n; cin >> s; s = s / 7; n = 1; while (s < 255) { if ((s+n) % 2 == 0) s = s + 11; n = n + 5; } cout << n << endl; return 0; }
| |
| Паскаль | Алгоритмический язык | |
var s, n: integer; begin readln(s); s := s div 7; n := 1; while s < 255 do begin if (s+n) mod 2 = 0 then s := s + 11; n := n + 5 end; writeln(n) end.
| алг нач цел s, n ввод s s := div(s,7) n := 1 нц пока s < 255 если mod(s+n,2) = 0 то s := s + 11 все n := n + 5 кц вывод n, нс кон | |
Решим задачу с помощью программы методом перебора. Ниже приведена программа на языке PascalABC:
var s, n, i: integer;
begin
for i := 1 to 1000 do begin
s := i div 7;
n := 1;
while s < 255 do begin
if (s+n) mod 2 = 0 then
s := s + 11;
n := n + 5
end;
if n = 96 then begin
writeln(i);
break;
end;
end;
end.
После выполнения программы наименьшее значение s, выведенное на экран, будет равно 329.
Ответ: 329.
Приведём другое решение на языке Python.
for i in range(1, 1000):
s = i
s = s // 7
n = 1
while s < 255:
if (s+n) % 2 == 0:
s = s + 11
n = n + 5
if n == 96:
print(i)
break

