Задача к ЕГЭ по информатике на тему «программирование – циклы, условия» №2

Ниже на трёх языках программирования записан алгоритм. Получив на вход натуральное число x  , этот алгоритм печатает два числа: m  и s  . Укажите наименьшее возможное значение x  , при вводе которого алгоритм печатает сначала 5  , а потом 12  .

------------------------------------------------------------------------------------------------------ |                   |                                           |                                    | |P-ython------------|C-+-+--------------------------------------|P-ascal-----------------------------| |x =  int(input())  |#include  <  iostream  >                    |var x, m,  s, d : integer;          | |                   |                                           |                                    | |m  =  0            |using namespace  std;                      |begin                               | |s =  0             |int main () {                               |      readln(x);                    | |                   |                                           |                                    | |while x >  0 :     |     int x, m, s, d;                       |      m  :=  0;                      | |     d  =  x % 8   |     cin  >>  x;                           |      s := 0;                       | |                   |                                           |                                    | |     s + =  d      |     m  =  0;                              |      while x >  0 do begin          | |     if d >  m  :  |     s  =  0;                              |           d :=  x mod  8;          | |                   |                                           |                                    | |           m  =  d |     while (x  >  0) {                     |           s :=  s +  d;            | |     x  =  x ∕ ∕ 8 |           d =  x % 8;                     |           if d >  m  then  m  :=  d; | |                   |                                           |                                    | |print(m, s)        |           s + =  d;                       |           x  :=  x div 8            | |                   |           if (d >  m ) m =  d;            |      end;                          | |                   |                                           |                 ′ ′                | |                   |           x =  x ∕ 8;                     |      writeln(m,   , s)             | |                   |     }                                     |end.                                | |                   |                       ′ ′                 |                                    | |                   |     cout  <<  m  < <     < <  s < < endl; |                                    | |                   |     return 0;                             |                                    | |                   |                                           |                                    | ---------------------}--------------------------------------------------------------------------------

for i in range(-1000,1000):
    x = i
    m = 0
    s = 0
    while x > 0:
        d = x % 8
        s += d
        if d > m:
            m = d
        x = x//8
    if m == 5 and s == 12:
        print(i)
        break

Ответ: 173
Оцените статью
Я решу все!