Задача: прочитав сначала количество элементов N (1 ≤ N ≤ 1000), затем сами N чисел (модуль не превышает 30000), посчитать сколько из них кратны 8. Сообщение говорит, что хотя бы одно такое число гарантированно есть, но решение должно работать и без этой гарантии.
План решения (пошагово):
- Прочитать N.
- Прочитать следующие N чисел.
- Подсчитать количество элементов, для которых число mod 8 = 0.
- Вывести полученное число.
- Временная сложность: O(N), память O(1).
Пример: Ввод: 3 16 26 24 Вывод: 2 Пояснение: 16 и 24 кратны 8.
Код на Python (слегкаrobust к любому разделителю пробелов/переносов строк): def main(): import sys data = list(map(int, sys.stdin.read().split())) if not data: print(0) return n = data[0] count = 0 for x in data[1:1+n]: if x % 8 == 0: count += 1 print(count)
if name == "main": main()
Альтернативно (иногда удобнее для C++/Java): читаем по одному числу в цикле и считаем, если x % 8 == 0.
Пояснение по модулю с отрицательными числами:
- В Python выражение x % 8 возвращает неотрицательный остаток, поэтому для кратности проверка x % 8 == 0 корректна и для отрицательных чисел тоже.
- В других языках остаток может быть отрицательным, но логика x mod 8 == 0 остается той же: число делится на 8 без остатка.
Если нужно, могу привести аналогичный пример на C++ или Java.