Решение: Анализ алгоритма в восьмеричной системе
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм выводит сначала $2$, а потом $3$.
Решение по шагам
4 шагаПри каждом делении $x$ на $8$ алгоритм отбрасывает последнюю восьмеричную цифру. Поэтому число $M$ равно количеству цифр исходного числа в восьмеричной системе счисления.
Условие $M=3$ означает, что исходное число имеет вид $abc_8$, где $a\ne0$. Величина $L$ равна сумме тех цифр $a$, $b$, $c$, которые являются нечётными.
Чтобы получить $L=2$ и максимальное трёхзначное восьмеричное число, первая цифра должна быть максимальной чётной цифрой $6$. Оставшиеся цифры должны дать сумму нечётных цифр $2$; для максимального числа это запись $611_8$.
Переведём число в десятичную систему: $611_8=6\cdot8^2+1\cdot8+1=384+8+1=393$.
Где здесь ошибаются
Считать $M$ количеством десятичных цифр числа.
Суммировать все остатки, включая чётные.
Забыть перевести найденное восьмеричное число в десятичную систему.