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

Ниже на четырёх язы­ках про­грам­ми­ро­ва­ния за­пи­са­на про­грам­ма, ко­то­рая вво­дит на­ту­раль­ное число x, вы­пол­ня­ет пре­об­ра­зо­ва­ния, а затем вы­во­дит одно число. Ука­жи­те наи­мень­шее воз­мож­ное зна­че­ние x, при вводе ко­то­ро­го про­грам­ма вы­ве­дет числа 3 и 10.

 

C++Python

#include <iostream>

using namespace std;

 

int main()

{

    int x, k, a, b, d;

    cin >> x;

    k = x % 9;

    a = 0; b = 0;

    while (x > 0) {

        d = x % 9;

        if (d == k) ++a;

        b += d;

        x = x / 9;

    }

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

    return 0;

}

x = int(input())

k = x % 9

a = 0

b = 0

while x > 0:

    d = x % 9

    if d == k:

        a += 1

    b += d

    x //= 9

print(a, b)

 

 

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

var x, k, a, b, d: integer;

begin

    readln(x);

    k := x mod 9;

    a := 0; b := 0;

    while x > 0 do begin

        d := x mod 9;

        if d = k then a := a+1;

        b := b + d;

        x := x div 9

    end;

    writeln(a, ' ', b)

end.

 

алг

нач

    цел x, k, a, b, d

    ввод x

    k := mod(x, 9)

    a := 0; b := 0

    нц пока x > 0

        d := mod(x,9)

        если d = k

            то a := a+1

        все

        b := b + d

        x := div(x,9)

    кц

    вывод a, ' ', b, нс

кон

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

Ре­ше­ние.

Режим за­да­чу с по­мо­щью языка PascalABC пе­ре­бо­ром. Ниже при­ве­де­на про­грам­ма для ре­ше­ния этой за­да­чи.

var

x, k, a, b, d, i: integer;

begin

for i := 1 to 1000 do begin

x := i;

k := x mod 9;

a := 0; b := 0;

while x > 0 do begin

d := x mod 9;

if d = k then a := a+1;

b := b + d;

x := x div 9

end;

if (a = 3) and (b = 10) then begin

writeln(i);

break;

end;

end;

end.

В ре­зуль­та­те ра­бо­ты про­грам­мы по­лу­ча­ем ответ  — 874.

 

Ответ: 874.

 

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

for i in range(10000):

x = i

k = x % 9

a = 0

b = 0

while x > 0:

d = x % 9

if d == k:

a += 1

b += d

x //= 9

if a == 3 and b == 10:

print(i)

break

Раздел кодификатора ФИПИ: