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

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

 

Бей­сикPython

DIM X,S,D,R AS LONG

INPUT X

S = X

R = 0

WHILE X > 0

  D = X MOD 2

  R = 10*R + D

  X = X \ 2

WEND

S = R + S

PRINT S

x = int(input())

S = x;

R = 0

while x > 0:

   d = x % 2

   R = 10*R + d

  x=x // 2

S = R + S

print(S)

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

var x,d,R,S: longint;

begin

     readln(x);

     S := x;

     R := 0;

     while x > 0 do

     begin

       d := x mod 2;

       R := 10*R + d;

       x := x div 2;

     end;

     S := R + S;

     writeln(S);

end.

алг

нач

     цел x, d, R, S

     ввод x

     S := x

     R := 0

     нц пока x > 0

         d := mod(x, 2)

         R := 10*R + d

         x := div(x, 2)

     кц

     S := R + S

    вывод S

кон

Си++

#include <iostream>

using namespace std;

int main()

{

     long x,d,R,S;

     cin >> x;

     S = x;

     R = 0;

     while (x > 0){

         d = x % 2;

         R = 10*R + d;

         x = x / 2;

       }

     S = R + S;

     cout << S << endl;

    return 0;

}

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

Ре­ше­ние.

Для того, чтобы ито­го­вое число было ше­сти­знач­ным, нужно, чтобы цикл вы­пол­нил­ся 6 раз. Тогда нужно ми­ни­маль­ное число, ко­то­рое 6 раз по­де­лит­ся на 2 (при ше­стом де­ле­нии на 2 ре­зуль­тат будет равен 0). Из­вест­но, что число боль­ше 32 (т. к. это ми­ни­маль­ное число, ко­то­рое 6 раз де­лит­ся на 2), а сле­ду­ю­щее за ним под­хо­дит.

 

Ответ: 33.

 

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

for i in range(1, 10000):

x = i

S = x

R = 0

while x > 0:

d = x % 2

R = 10 * R + d

x = x // 2

S = R + S

S = str(S)

if len(S) == 6:

print(i)

break

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