Анализ алгоритма в позиционной системе
Получив на вход натуральное число $x$, алгоритм выполняет несколько итераций: на каждой итерации увеличивает $N$ на 1, прибавляет остаток от деления $x$ на 4 к $S$, умножает $P$ на этот остаток, после чего заменяет $x$ на целую часть частного $x/4$. После завершения цикла к $S$ и $P$ прибавляется $N$. Затем алгоритм печатает сначала $S$, а потом $P$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 7, а потом 3.
1x = int(input()) 2P = 1 3S = 0 4N = 0 5while x > 0: 6 N = N + 1 7 S = S + (x % 4) 8 P = P * (x % 4) 9 x = x // 4 10S = S + N 11P = P + N 12print(S) 13print(P)
Условие как в банке ФИПИ — открыть и сверить
| Ниже на төрт языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: S и P. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 7, а потом 3.
| ||||||||
| |
Формат: өлшем бірліктері жоқ сан немесе сөз; бөлшек бөлігін үтірмен бөліңіз.
1Мягкая — с чего смотретьдеңгей 1 из 3
Остатки от деления на 4 — это цифры числа $x$ в четверичной системе счисления.
2Жетекші — қандай сандарды есептеудеңгей 2 из 3
Если в записи $x$ в четверичной системе $N$ цифр, то сумма цифр равна $7-N$, а произведение цифр — $3-N$.
3Тікелей — іс жүзінде шешімдеңгей 3 из 3
Возможен только случай $N=3$: произведение цифр равно 0, сумма равна 4. Для наибольшего числа выбираем цифры $3$, $1$, $0$, поэтому $x=(310)_4=3\cdot4^2+1\cdot4=52$.