Задание 20. Программирование: циклы и ветвления: Объяснение и решение демоверсии егэ по информатике 2020
*** КАНАЛ ЮТЬЮБ ***
ЕГЭ по информатике -> ЕГЭ 2020 -> ЕГЭ 2020
Разбор 20 задания. Демоверсия егэ по информатике 2020, ФИПИ:
Ниже на нескольких языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M.
Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 6, а потом 7.
Паскаль:
Ниже на нескольких языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M.
Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 6, а потом 7.
Паскаль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var x, L, M: integer; begin readln(x); L := 0; M := 0; while x > 0 do begin M := M + 1; if x mod 2 = 0 then L := L + 1; x := x div 2; end; writeln(L); writeln(M); end. |
Бейсик:
|
Python:
|
С++:
|
📹 Видеоразбор подобного 20 задания ЕГЭ
✍ Решение:
-
Рассмотрим алгоритм:
- Наличие операторов
x mod 2
иx div 2
говорит о том, что эту задачу можно решать, представляя x в двоичной системе счисления. - В цикле есть счетчик M, который увеличивается на единицу и в конце программы будет соответствовать количеству итераций цикла. Таким образом, имеем 7 проходов цикла (в конце выводится M — по условию задания — число 7).
- Условие
if x mod 2 = 0
проверяет на четность младший разряд числа в двоичной системе:
В цикле:
например, если было x = 510 = 1012,
то if x mod 2 = 0
проверяет if 1 = 0
x := x div 2;
отсекается младший разряд двоичного представления значения x, т.е.:если было, например, x = 510 = 1012, то стало x = 102
10000002 = 64 + 0 + 0 + 0 + 0 + 0 + 0 = 6410
Результат: 64