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

