На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rust
  
> ЕГЭ по информатике 2020, часть 1, № 20, анализ алгоритма с циклами и условные операторы
    ЕГЭ по информатике 2020, вариант Москва
    Часть 1, № 20
    Анализ алгоритма с циклами и условные операторы
    Задание взято с сайта
    http://kotolis.ru/realegeinf_2020

    Условие. Ниже приведён алгоритм. Укажите наибольшее x, при вводе которого алгоритм напечатает сначала 3, потом – 6.
    user posted image

    Решение.
    Программа на Паскале:
    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 будет произведение чётных цифр, имеющихся в этой записи.

    По условию исходное число должно быть максимальным. Максимальное трёхзначное число в восьмеричной системе 7778 =83 – 1 = 29 – 1 = 512 – 1 = 51110.
    По условию нечётные цифры в записи пропускаются, а чётные умножаются на произведение.
    В результате получается произведение, равное 6.
    6 нельзя представить как произведение двух или трёх чётных цифр, поэтому в записи этого максимального числа одна цифра 6 и две максимальные нечётные цифры 7.
    Это число 7768 =7778 – 1 = 51110 – 1 = 510.
    Ответ: 510 .
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0145 ]   [ 16 queries used ]   [ Generated: 24.07.21, 06:39 GMT ]