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

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

 

Бей­сикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

     IF X MOD 2 = 0 THEN

      L = L + (X MOD 8)

     END IF

X = X \ 8

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

     M = M + 1

     if x % 2 == 0:

        L = L + (x % 8)

     x = x // 8

print(L)

print(M)

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

var x, L, M: integer;

begin

     readln(x);

     L := 0;

     M := 0;

     while x>0 do

    begin

         M :=M+1;

         if x mod 2 = 0 then

            L := L + (x mod 8);

         x := x div 8;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

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

            то

             L := L + mod(x,8)

        все

        x := div(x,8)

     кц

     вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

     int x, L, M;

     cin >> x;

     L = 0;

     M = 0;

     while (x > 0) {

          M = M + 1;

          if(x % 2 == 0) {

             L = L + (x % 8);

          }

          x = x / 8;

        }

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

        return 0;

}

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

Ре­ше­ние.

Не­об­хо­ди­мо по­лу­чить наи­боль­шее трёхзнач­ное вось­ме­рич­ное число, у ко­то­ро­го сумма цифр двух раз­ря­дов равна 10, а тре­тий раз­ряд не удо­вле­тво­рял усло­вию (x mod 2) = 0. Сле­до­ва­тель­но, две пер­вые цифры вы­гля­дят так: 64. А ну­ле­вой раз­ряд дол­жен быть таким, чтобы усло­вие (x mod 2) = 0 не вы­пол­ня­лось, а, зна­чит, тре­тий раз­ряд равен 7. Сле­до­ва­тель­но, число, ко­то­рое мы ищем 7648 = 50010.

 

Ответ: 500.

 

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

for i in range(10000, 0, -1):

x = i

L = 0

M = 0

while x > 0:

M = M + 1

if x % 2 == 0:

L = L + (x % 8)

x = x // 8

if L == 10 and M == 3:

print(i)

break

Источник: ЕГЭ по ин­фор­ма­ти­ке 03.07.2020. Ос­нов­ная волна
Раздел кодификатора ФИПИ: