Задача понятна. Нужно суммировать только те числа из последовательности, которые одновременно выполняют:
- кратны 6 (x % 6 == 0)
- оканчиваются на цифру 4 (x % 10 == 4) Ввод заканчивается нулём (0 не входит в сумму).
Пошаговый план:
- считывать числа до тех пор, пока не встретится 0;
- для каждого числа проверить оба условия: x % 6 == 0 и x % 10 == 4;
- если оба верны, добавлять число к сумме;
- после обработки вывести сумму.
Пример решения на Python 3 (прочитает числа, разделённые пробелами или переводами строк):
import sys
def main(): total = 0 for token in sys.stdin.read().strip().split(): x = int(token) if x == 0: break if x % 6 == 0 and x % 10 == 4: total += x print(total)
if name == "main": main()
Пояснения к кодову:
- читаем всю входную строку, разбиваем на токены по whitespace, переводим каждый в целое число;
- как только встречаем 0, завершаем обработку (0 не входит в последовательность);
- проверяем условия и суммируем подходящие числа;
- выводим полученную сумму.
Сложность:
- Время: O(n), где n — количество введённых чисел до 0.
- Память: O(1) дополнительных константных затрат.
Примечание к примеру из условия: в примере вход указан как «142414422120» без разделителей, что делает однозначное восстановление последовательности затруднительным. Обычно вход подаётся с разделителями (пробелы или новые строки). Приведённый код корректно обрабатывает любой валидный вход, где числа разделены пробелами/переводами строки и завершаются нулём.