Задача к ЕГЭ по информатике на тему «программирование – циклы, условия» №1

Ниже на двух языках программирования записан алгоритм. Получив на вход число   , этот алгоритм печатает два числа: N  и S  . Укажите наибольшее число   , при вводе которого алгоритм печатает два числа: 6  и 6  .

<img alt="|—————————|———————|—————————————| |Pascal |P ython |C + + | |var x,-S, N-: integer;——|x-=—int(input())——|#include——————-| | | | | |begin |S = 0 |using namespace std; | | readln(x ); |N = 0 |int main (){ | | S := 0; |while x > 0 : | int x, S, N; | | | | | | N := 0; | N = N + 1 | cin > > x; | | while x > 0 do | S = S + (x % 2) | S = 0; | | begin | if N % 2 > 0 : | N = 0; | | | | | | N := N + 1; | S = S + (x % 4)| while (x > 0){ | | S := S + (x mod 2); | x = x ∕∕ 2 | N = N + 1; | | if N mod 2 > 0 then |print(N ) | S = S + (x % 2); | | S := S + (x mod 4);|print(S ) | if (N % 2 > 0){ | | | | | | x := x div 2; | | S = S + (x % 4); | | end; | | } | | writeln(N ); | | x = x ∕ 2; | | | | | | writeln(S); | | } | |end. | | cout < < N < < endl << S <

for i in range(1000000):
    x = i
    S, N = 0, 0
    while x > 0:
        N += 1
        S += x % 2
        if N % 2 > 0:
            S += x % 4
        x //= 2
    if N == 6 and S == 6:
        print(i)

Ответ: 40
Оцените статью
Я решу все!