Задания
Версия для печати и копирования в MS Word
Тип Д22 № 13523
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;

}

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

Ре­ше­ние.

Для того, чтобы ито­го­вое число было пя­ти­знач­ным, нужно, чтобы цикл вы­пол­нил­ся 5 раз. Не­об­хо­ди­мо найти ми­ни­маль­ное число, ко­то­рое 5 раз по­де­лит­ся на 2. Из­вест­но, что число боль­ше 16 (т. к. это ми­ни­маль­ное число, ко­то­рое 5 раз де­лит­ся на 2), сле­до­ва­тель­но, 17 под­хо­дит.

 

Ответ: 17.

 

При­ведём дру­гое ре­ше­ние на языке 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) == 5:

print(i)

break

Источник: Тре­ни­ро­воч­ная ра­бо­та по ИН­ФОР­МА­ТИ­КЕ 11 класс 29 но­яб­ря 2016 года Ва­ри­ант ИН10204
Раздел кодификатора ФИПИ: