информатика
Информатика
Русский язык
Английский язык
Немецкий язык
Французcкий язык
Испанский язык
Физика
Химия
Биология
География
Обществознание
Литература
История
сайты - меню - вход - новости




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

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

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

    IF X MOD 2 = 0 THEN

        A = A + 1

    ELSE

        B = B + X MOD 10

    END IF

    X = X \ 10

WEND

PRINT A

PRINT B

x = int(input())

a=0; b=0

while x > 0:

    if x%2 == 0:

        a += 1

    else:

        b += x%10

    x = x//10

print(a, b)

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

var x, a, b: longint;

begin

    readln(x);

    a := 0; b := 0;

    while x > 0 do

    begin

        if x mod 2= 0 then

            a := a + 1

        else

            b := b + x mod 10;

        x := x div 10;

    end;

    writeln(a); write(b);

end.

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 0

    нц пока x > 0

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

            то a := a+1

            иначе b := b + mod(x,10)

        все

        x := div(x,10)

    кц

    вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0) {

        if (x%2 == 0) a += 1;

        else b += x%10;

        x = x / 10;

    }

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

    return 0;

}

 

Пояснение.

Данный алгоритм, получая на вход число x, считает количество четных цифр и складывает нечетные.

 

Эта часть программы считает количество четных цифр:

 

if x mod 2 = 0 then

a := a + 1

 

А эта — пока число не станет равным нулю — складывает нечетные цифры, а также убирает последнюю цифру числа:

while x > 0 do

begin

    ...

else

    b := b + x mod 10;

x := x div 10;

 

Таким образом, необходимо найти наибольшее число x, в котором 2 четных цифры, а сумма нечетных равна 4. Для этого помещаем в начало записи числа две наибольшие натуральные четные цифры, а потом для увеличения количества разрядов минимально возможные нечетные. Получаем 881111.

 

Ответ: 881111.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та 28.11.2017 ИН10203