Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: b и m. Укажите количество чисел x, при вводе которых алгоритм печатает сначала 22, а потом 20.
C++ |
Python |
#include <iostream>
using namespace std;
int main() {
int x, a, b, d, m;
cin >> x;
a = 0; b = 0; m = 0; d = 2;
while (x > 0) {
b = b + 1;
if (x % 2 == d) {
a = a + 1;
} else {
if (a > m) m = a;
a = 1;
d = x % 2;
}
x = x / 2;
}
if (a > m) m = a;
cout << b << endl << m << endl;
return 0;
} |
x = int(input())
a = 0
b = 0
m = 0
d = 2
while x > 0:
b = b + 1
if x % 2 == d:
a = a + 1
else:
if a > m:
m = a
a = 1
d = x % 2
x = x // 2
if a > m:
m = a
print(b)
print(m)
|
Алгоритмический язык |
Паскаль |
алг
нач
цел x, a, b, d, m
ввод x
a:=0; b:=0; m:=0; d:=2;
нц пока x>0
b := b + 1
если mod(x, 2) = d
то a := a + 1
иначе
если a > m то m := a;
a := 1;
d := mod(x, 2)
все
x := div(x, 2)
все
кц
если a > m то m := a;
вывод b, нс, m
кон |
var x, a, b, d, m: longint;
begin
readln(x);
a := 0; b := 0; m := 0; d := 2;
while x>0 do
begin
b := b + 1;
if x % 2 = d then a := a + 1
else begin
if a > m then m := a;
a := 1;
d := x % 2
end;
x := x div 2
end;
if a > m then m := a;
writeln(b); write(m)
end. |