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

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

 

 

Бей­сикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

IF X MOD 2 = 1 THEN

    M = M + X MOD 10

ENDIF

X = X \ 10

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    L += 1

    if x % 2 == 1:

        M = M + x % 10

    x = x // 10

print(L)

print(M)

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

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        L := L + 1;

        if x mod 2 = 1 then

            M := M + x mod 10;

        x := x div 10;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        L := L + 1

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

            то

                M := M + mod(x,10)

        все

        x := div(x,10)

    кц

    вывод L, нс, M

кон

Си++

 

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        L = L + 1;

        if(x % 2 == 1){

            M = M + x % 10;

        }

        x = x / 10;

    }

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

}

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

Ре­ше­ние.

Строч­ка L:= L + 1; в дан­ной про­грам­ме счи­та­ет ко­ли­че­ство цифр в числе, зна­чит, число трех­знач­ное.

При по­мо­щи ко­манд if x mod 2 = 1 then M:= M + x mod 10; под­счи­ты­ва­ет­ся сумма всех цифр числа x, если оно нечётно. Наи­мень­шее число, удо­вле­тво­ря­ю­щее усло­вию  — 107.

 

Ответ: 107.

 

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

for i in range(10000):

x = i

L = 0

M = 0

while x > 0:

L += 1

if x % 2 == 1:

M = M + x % 10

x = x // 10

if L == 3 and M == 8:

print(i)

break

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