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

