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

Ниже на трёх языках программирования записана программа, которая получает натуральное число x  , выполняет преобразования, а затем выводит два числа. Укажите наименьшее возможное значение x  , при вводе которого программа выведет 16  и 2  .

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

Проанализируем программу. В переменной a  хранится сумма цифр числа x  в восьмеричной системе счисления, если на данном шаге цикла число x  чётное. Чтобы число x  было наименьшим, его чётные цифры в восьмеричной системе счисления должны быть равны 6,6,4  . В переменной b  хранится сумма цифр числа x  в восьмеричной системе счисления, если на данном шаге цикла число x  нечётное. Тогда единственный вариант нечётных цифр в восьмеричной записи числа x  равен 1,1  . Наименьшее число x  равно 114668 = 491810  .

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