← Все вопросы

Задание 15.1 ОГЭ: как посчитать количество чисел по условию на Python?

Задан 25 месяцев назад499 просмотров2 ответа
9

В задании 15.1 попросили посчитать, сколько во введённой последовательности чисел делятся на 3, и вывести их сумму. Как написать на Python подсчёт количества и суммы по условию? Не уверен, как правильно завести счётчик и накопитель.

2 ответа

11
✓ Принятый ответ — помог автору

Это классическая задача 15.1 на счётчик + накопитель. Нужны две переменные: одна считает количество подходящих чисел, другая копит их сумму.

Если ввод идёт до нуля (нулём заканчивается):

x = int(input())
count = 0      # сколько чисел делится на 3
s = 0          # их сумма
while x != 0:
    if x % 3 == 0:
        count = count + 1
        s = s + x
    x = int(input())
print(count)
print(s)

Если задано N чисел:

n = int(input())
count = 0
s = 0
for i in range(n):
    x = int(input())
    if x % 3 == 0:
        count += 1
        s += x
print(count)
print(s)

Разбор ключевых мест:

  • x % 3 == 0 — проверка «делится на 3 без остатка»;
  • count += 1 — то же, что count = count + 1;
  • накопители обнуляются ДО цикла (count = 0, s = 0), иначе ошибка;
  • в варианте «до нуля» сам 0 в подсчёт не входит и не суммируется.

Частая ошибка: обновляют сумму вне условия — тогда складываются все числа, а не только делящиеся на 3. И не забывайте про второй input() в цикле while, иначе будет вечный цикл с одним и тем же числом.

4

Если числа уже вводятся в одной строке через пробел (бывает в формулировках), читайте их так:

nums = list(map(int, input().split()))
count = sum(1 for x in nums if x % 3 == 0)
s = sum(x for x in nums if x % 3 == 0)
print(count, s)

Но на ОГЭ чаще каждое число вводится с новой строки, поэтому базовый шаблон с while/for и int(input()) универсальнее. Сначала уточните по условию, как именно подаются данные.

Ваш ответ

Войдите, чтобы ответить на вопрос.