СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 20 № 8108

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

 

Бейсик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;

}

 

Решение.

Можно заметить, что число M = целая_часть(log2x) + 1, а L — количество единиц в двоичной записи числа x. Найдём минимальное число, удовлетворяющее этим условиям. Это 1000112 = 35.

Источник: ЕГЭ 05.05.2015. До­сроч­ная волна.