ЕГЭ по информатике 2020, часть 1, № 20
|
|
Четверг, 23 Июля 2020 г. 18:00
+ в цитатник
swf: ЕГЭ по информатике 2020, вариант Москва
Часть 1, № 20
Анализ алгоритма с циклами и условные операторы
Задание взято с сайта
http://kotolis.ru/realegeinf_2020
Условие. Ниже приведён алгоритм. Укажите наибольшее x, при вводе которого алгоритм напечатает сначала 3, потом – 6.
Решение.
Программа на Паскале:
var x, L, M: longint;
begin
readln(x);
M:= 0;
L:= 1;
while x > 0 do begin
M:= M +1;
if x mod 2 = 0 then
L:= L * (x mod 8);
x:= x div 8;
end;
writeln(M);
writeln(L);
end.
В алгоритме используется остаток от деления на 8, а при каждом проходе цикла x нацело делится на 8.
Эти действия удобно рассмотреть в восьмеричной записи числа: остаток от деления на 8 показывает последнюю цифру восьмеричной записи, а целое деление на 8 отбрасывает эту цифру.
В результате работы алгоритма значением переменной M будет количество цифр в восьмеричной записи числа x, а значением переменной L будет произведение чётных цифр, имеющихся в этой записи.
По условию исходное число должно быть максимальным. Максимальное трёхзначное число в восьмеричной системе 777
8 =8
3 – 1 = 2
9 – 1 = 512 – 1 = 511
10.
По условию нечётные цифры в записи пропускаются, а чётные умножаются на произведение.
В результате получается произведение, равное 6.
6 нельзя представить как произведение двух или трёх чётных цифр, поэтому в записи этого максимального числа одна цифра 6 и две максимальные нечётные цифры 7.
Это число 776
8 =777
8 – 1 = 511
10 – 1 = 510.
Ответ: 510 .
https://forum.sources.ru/index.php?showtopic=419226&view=findpost&p=3835023
Метки:
ПОМОЩЬ ШКОЛЬНИКАМ
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-