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

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­сан ал­го­ритм. По­лу­чив на вход на­ту­раль­ное число x, этот ал­го­ритм пе­ча­та­ет число R. Ука­жи­те такое число x, при вводе ко­то­ро­го ал­го­ритм пе­ча­та­ет дву­знач­ное число, сумма цифр ко­то­ро­го равна 16. Если таких чисел x не­сколь­ко, ука­жи­те наи­мень­шее из них.

 

Бей­сикPython

DIM X,D,R AS LONG

INPUT X

R = 0

WHILE X>0

    D = X MOD 10

    R = 10*R + D

    X = X \ 10

WEND

PRINT R

x = int(input())

R = 0

while x>0:

    d = x % 10

    R = 10*R + d

    x = x // 10

print(R)

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

var

    x,d,R: longint;

begin

    readln(x);

    R := 0;

    while x>0 do

        begin

            d := x mod 10;

            R := 10*R + d;

            x := x div 10

        end;

    writeln(R)

end.

алг

нач

    цел x, d, R

    ввод x

    R := 0

    нц пока x>0

        d := mod(x, 10)

        R := 10*R + d

        x := div(x, 10)

    кц

    вывод R

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    long x,d,R;

    cin >> x;

    R = 0;

    while (x>0)

        {

            d = x % 10;

            R = 10*R + d;

            x = x / 10;

        }

    cout << R << endl;

    return 0;

}

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

Ре­ше­ние.

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

Раз­ло­жим 16 на сла­га­е­мые так, чтобы одно из сла­га­е­мых было как можно боль­ше, а вто­рое как можно мень­ше: 16 = 7 + 9. Сле­до­ва­тель­но, наи­мень­шее число, удо­вле­тво­ря­ю­щее усло­вию за­да­чи  — 79.

 

При­ме­ча­ние 1. В от­ве­те про­сят на­пи­сать число, ко­то­рое вво­дят в про­грам­му.

При­ме­ча­ние 2. Не­об­хо­ди­мо, чтобы сумма цифр в вы­во­де была 16, а не число 16.

 

Ответ: 79.

 

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

for i in range(10000):

x = i

R = 0

while x > 0:

d = x % 10

R = 10 * R + d

x = x // 10

summ = 0

while R > 0:

summ += R % 10

R //= 10

if summ == 16:

print(i)

break

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