ЕГЭ по информатике задание 20

ЕГЭ по информатике задание 20

ЕГЭ по информатике задание 20

Тема: «Анализ программы, содержащей циклы и ветвления»

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

Python Паскаль
x = int(input())
a=0; b=0
while x > 0:
if x%2 == 0:
a += 1
else:
b += x%6
x = x//6
print (a, b)
var x, a, b: longint;
begin
readln (x);a := 0; b := 0;
while x > 0 do
begin
if x mod 2 = 0 then
a := a+ 1
else
b := b + x mod 6;
x := x div 6;
end;
writeln (a); write(b);
end.

РЕШЕНИЕ

Анализ действия программы

В первой строке объявляется 3 переменные типа длинное целое: var x, a, b: longint. Далее пользователь вводит значение х: readln (x). Переменным а и b присваивается значение 0 a := 0; b := 0. Затем в цикле пока х больше 0 while x > 0 do если х – четно,  то if x mod 2 = 0 then прибавляем к а единицу a := a+ 1 иначе прибавляем к b — остаток от деления х на 6 новое значение х = целочисленное деление х на 6 x := x div 6Выводим а и b. Напечатать программа должна 2 и 4. Это значения переменных a=2, b=4.

Анализируя цикл видим, что переменная а наращивается когда х – четное, то есть число х (в ходе изменения) будет четным 2 раза (так как а=2), в противном случае число b наращивается на (x mod 6) – остаток от деления х на 6.

То есть в ходе уменьшения число х должно:

  1. быть 2 раза четным
  2. быть нечетным и иметь сумму остатков от деления на 6 равную 4.

ГЛАВНАЯ МЫСЛЬ: перед нами шестиричная система, в которой необходимо найти минимальную сумму чисел равных 4, при этом число должно быть 2 раза четным, т.к., a = 2

Шестиричная система счислений — это цифры [ 0 1 2 3 4 5 ]

Как получить число 4?

0+4 ( 0 и 4 – не подходит числа четные)

1+3 (1 и 3 – подходит, так как числа нечетные)

2+2 (2 и 2 – не подходит числа четные)

В итоге надо найти четырехзначное число, в котором две нечётные цифры 1 и 3, а две другие цифры чётные. Например: 2213, 1344, 4013

НО! В задании сказано:

Укажите наименьшее из таких чисел x

Это означает, что таких чисел x, которые выведут результат работы алгоритма будет несколько, а нам надо вывести только наименьшее. Таким минимальным шестиричным числом может быть только 1003

Остается перевести число 1003 в десятичную систему счислений, т.к. число x должно быть десятичным.

Перевод числа из шестиричной системы счисления в десятичную

перевод числа из шестиричной системы счисления в десятичную

Ответ: 219

[newsletter_signup_form id=1]

Самостоятельная работа

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

Ответ напишите в комментариях этого поста

 

Foxford
Информатика в школе