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


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

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

 

 

Бэйсик Паскаль

DIM X, L, M AS INTEGER

INPUT X

L=0: M=0

WHILE X > 0

    L = L+1

    M = M +(X MOD 10)

    X = X \ 10

WEND

PRINT L

PRINT M

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x>0 do

        begin

            L:=L + 1;

            M:=M + (x mod 10);

            x:=x div 10;

        end;

writeln(L); write(M);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L=0; M=0;

    while (x>0){

        L = L+1;

        M = M +(x%10);

        x = x/10;

    }

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

}

алг

нач

цел x, L, M

ввод x

L:=0; M:=0

нц пока x>0

    L:=L+1

    M:=M+mod(x,10)

    x:=div(x,10)

кц

вывод L, нс, M

кон

Python

x = int(input())

L = 0

M = 0

while x > 0:

    L += 1

    M += x % 10

    x = x // 10

print(L)

print(M)

Решение.

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

while x > 0 do begin

...

x:= x div 10;

end;

 

Т. к. оператор div оставляет только целую часть от деления, то при делении на 10 это равносильно отсечению последней цифры.

 

Из приведенного цикла видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется столько раз, сколько цифр в десятичной записи введенного числа, при этом число L столько же раз увеличивается на 1. Следовательно, конечное значение L совпадает с числом цифр в x. Для того, чтобы L стало L=3, x должно быть трёхзначным.

 

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

M:= M + x mod 10;

end;

 

Оператор mod оставляет только остаток от деления, при делении на 10 это последняя цифра x. Таким образом М есть сумма цифр числа x.

 

Представим 7 в виде суммы: 7 = 7 + 0 + 0 = 1 + 6 + 0 = 1 + 5 + 1 = 1 + 4 + 2 = 1 + 3 + 3 и т. д. Видно, что мы не можем использовать цифры больше 7, поэтому для получения максимального числа используем представление 7 = 7 + 0 + 0.

 

Из этих цифр составим наибольшее число: 700.

 

Ответ: 700.


Аналоги к заданию № 3209: 3258 3262 3263 3264 3272 3273 3278 3281 3282 3283 ... Все