Перебор без ошибок · тема 5 из 8
Системы счисления и цикл while
Системы счисления · ЕГЭ 14
Одна идея — один пример
Последняя цифра числа в основании b равна n % b. После n //= b она удаляется. while повторяет действия, пока n > 0.
n = 13
print(n % 3, n // 3)
Теперь решаем самостоятельно
Для подсчёта цифр не обязательно строить строку. Обработай нуль отдельно: его запись содержит одну цифру 0.
Вводится целое n (0 ≤ n ≤ 100000). Выведи количество цифр 1 в его троичной записи.
Пример входных данных и результата
Ввод:
13
Вывод:
3
Черновик и файл программы
Черновик сохраняется в этом браузере. Ctrl/⌘ + S — сохранить.
Результаты проверки
Напиши решение и нажми «Проверить код». Данные каждого теста подаются автоматически.
Нужна подсказка?
13 = 111₃. После проверки последней цифры уменьши n через //= 3.
На чём легко ошибиться
Обычное / создаёт float и не удаляет цифру так, как нужно.
Разобрать один из способов решения
Сначала попробуй написать код сам. Сравни алгоритм, затем закрой разбор и воспроизведи решение без подсказки.
n = int(input())
count = 0
while n > 0:
if n % 3 == 1:
count += 1
n //= 3
print(count)Тесты проверяют результат на учебных примерах, но не доказывают правильность для любого входа. Объясни каждую строку и предложи собственный тест.
Перед следующей темой
Назови входные данные, результат, основной шаг алгоритма и граничный случай. Если использовал разбор, напиши решение заново. Для свободных экспериментов открой Python онлайн.
Все темы этого курса
Программа подготовлена по темам банка «Академии С». Официальные документы: ФИПИ. Справочник языка: Python. Не все экзаменационные задачи нужно решать программой: например, работа в таблицах требует освоения табличного редактора.