Олимпиадный тренинг

Задача . 38969


Задача

Темы:
Ниже на четырёх языках программирования записан алгоритм. Получив на вход число 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.

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя