Задания
Версия для печати и копирования в MS Word
Тип Д22 № 19069
i

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

 

Бей­сикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

    IF X MOD 2 = 0 THEN

        L = L + 1

    ENDIF

    X = X \ 2

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    M = M + 1

    if x % 2 == 0:

        L = L + 1

    x = x // 2

print(L)

print(M)

Пас­кальАл­го­рит­ми­че­ский язык

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        M := M + 1;

        if x mod 2 = 0 then

            L := L + 1;

        x := x div 2;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        M := M + 1

        если mod(x,2) = 0

            то

                L := L + 1

        все

        x := div(x,2)

    кц

    вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        M = M + 1;

        if(x % 2 == 0){

            L = L + 1;

        }

        x = x / 2;

    }

    cout << L << endl << M << endl;

    return 0;

}

Спрятать решение

Ре­ше­ние.

За­ме­тим, что в пе­ре­мен­ной M на­кап­ли­ва­ет­ся число ите­ра­ций цикла, а оно равно ко­ли­че­ству цифр в дво­ич­ной за­пи­си числа x. В пе­ре­мен­ной L за­пи­сы­ва­ет­ся число чётных цифр в дво­ич­ной за­пи­си числа x, то есть ко­ли­че­ство нулей в такой за­пи­си.

Наи­мень­шее число, при ко­то­ром ал­го­ритм на­пе­ча­та­ет сна­ча­ла 6, затем 7 равно 100 00002  =   6410.

 

Ответ: 64.

 

При­ведём дру­гое ре­ше­ние на языке Python.

for i in range(10000):

x = i

L = 0

M = 0

while x > 0:

M = M + 1

if x % 2 == 0:

L = L + 1

x = x // 2

if M == 7 and L == 6:

print(i)

break

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2020 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: