Тема 16. Написание программы на универсальном языке

16.01 Создание и выполнение программы на универсальном языке программирования

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела написание программы на универсальном языке
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#134197

Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с основанием 9 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).

Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 9-ричной системе счисления оканчивается цифрой 1, или «NO», если среди входных данных таких элементов нет.

Пример работы программы:

Входные данные Выходные данные
10
9
11
91
28
0
91

Источники: Банк ФИПИ

Показать ответ и решение

Идея решения:

Идея решения заключается в том, что сначала мы считаем первое число последовательности, затем будет объявлена переменная, которая в последствии будет хранить максимальное число в последовательности, которое в девятиричной системе счисления оканчивается на 1. Для того чтобы определить такое число будет написан цикл, который будет выполняться до тех пор пока текущее число не равно 0 и внутри него мы будем проверять по одному числу из последовательности, сравнивая его значение со значением, хранящимся в переменной для максимума и проверяя, что в девятиричной записи оканчивается на 1.

x = int(input()) # считываем первое число из последовательности
mx = 0 # максимальное число последовательности, оканчивающееся в семиричной записи на нечётную цифру
while x != 0: # цикл, который работает пока текущее число не равно 0
    if x % 9 == 1 and x > mx:  # Проверяем остаток от деления на 9 у текущего числа и сравниваем с максимумом
        mx = x # обновляем максимум в случае выполнения условия
    x = int(input()) # считываем следующее число из последовательности
if mx == 0: # если подходящего числа в последовательности не было
    print("NO")
else: # в ином случае
    print(mx) # вывод максимального числа

Ответ:

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!