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




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

Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которого алгоритм печатает сначала 2, а потом 5.

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A+1

    B = B * (X MOD 100)

    X = X\100

WEND

PRINT A

PRINT B

x = int(input())

a, b = 0, 1

while x > 0:

    a = a + 1

    b = b * x%100

    x = x//100

print(a)

print(b)

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

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do

        begin

            a := a+1;

            b := b*(x mod 100);

            x := x div 100;

        end;

    writeln(a); write(b);

end.

алг

нач

цел x, a, b

ввод x

a:=0; b:=1

нц пока x > 0

    a := a+1

    b := b*mod(x,100)

    x := div(x,100)

кц

вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        a = a+1;

        b = b * (x%100);

        x = x/100;

    }

    cout << a << endl << b << endl;

}

 

Решение.

Рассмотрим цикл, число шагов которого зависит от изменения переменной x:

while x > 0 do begin

...

x:= x div 100;

end;

Т. к. оператор div возвращает целую часть от деления, то при делении на 100 это равносильно отсечению последних двух цифр.

На каждом шаге от десятичной записи x отсекается две последних цифры до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0. Для того, чтобы a стало равным 2, x должно быть трёхзначным или четырёхзначным.

 

Теперь рассмотрим изменение b:

while x>0 do begin

b:=b*(x mod 100);

end;

 

Оператор mod возвращает остаток от деления, при делении на 100 это последние две цифры x. Поскольку необходимо, чтобы число было наибольшим, первая цифра числа должна быть 5, во втором разряде должен быть либо ноль либо единица, а в первом — единица. Искомое число — 501.

 

Ответ: 501.


Аналоги к заданию № 7996: 3508 3531 3814 4694 4726 Все