Статья Автор: Деникина Н.В., Деникин А.В.

Обработка последовательности чисел - 3

Задание 16 ОГЭ

Составные условия: И, ИЛИ, НЕ

Двузначные, трёхзначные, комбинации фильтров, вывод NO

 

Комбинации условий

and — оба истинны: «кратно 3 и оканчивается на 1» → a%3==0 and a%10==1

or — хотя бы одно: «кратно 5 или 9» → a%5==0 or a%9==0

not / != — отрицание: «кратно 4, но не кратно 7» → a%4==0 and a%7!=0

Разрядность

Двузначное: 10 <= a <= 99. Трёхзначное: 100 <= a <= 999 и т.д.

Цифры двузначного числа

Десятки: a // 10. Единицы: a % 10. Условие того, что цифры у двузначного числа различные: a//10 != a%10.

Пример: трёхзначные нечётные кратные 7

Условие

Напишите программу подсчёта суммы элементов последовательности натуральных чисел, которые являются трёхзначными нечётными и кратны 7. Программа должна вывести одно число — искомую сумму.

Python · for
Python · while
Python · while True
C++ · for
КуМир
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
n = int(input())
s = 0
for i in range(n):
    a = int(input())
    if 100 <= a <= 999 and a % 2 != 0 and a % 7 == 0:
        s += a
print(s)
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
a = int(input())
s = 0
while a != 0:
    if 100 <= a <= 999 and a % 2 != 0 and a % 7 == 0:
        s += a
    a = int(input())
print(s)
Ввод: последовательность заканчивается числом 0 (0 не входит в последовательность). Числа не превышают 30 000.
s = 0
while True:
    a = int(input())
    if a == 0:
        break
    if 100 <= a <= 999 and a % 2 != 0 and a % 7 == 0:
        s += a
print(s)
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
#include <iostream>
using namespace std;
int main() {
    int n, a, s = 0;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a;
        if (a>=100 && a<=999 && a%2!=0 && a%7==0)
            s += a;
    }
    cout << s << endl;
}
Ввод: сначала подаётся количество чисел N, затем сами числа (по одному в строке). Числа не превышают 30 000.
алг
нач
  цел n, a, s, i
  ввод n
  s := 0
  нц для i от 1 до n
    ввод a
    если a >= 100 и a <= 999 и mod(a, 2) <> 0 и mod(a, 7) = 0 то
      s := s + a
    все
  кц
  вывод s
кон
В C++ вместо and пишут &&, вместо or||, вместо not!.

Проверь себя

Выбери правильный ответ. При ошибке покажем объяснение.

ОЧКИ: 0 / 0
 
 
 
 
 

Шпаргалка

Паттерн Python C++
Двузначное 10 <= a <= 99 a>=10 && a<=99
Трёхзначное 100 <= a <= 999 a>=100 && a<=999
Десятки a // 10 a / 10
Единицы a % 10 a % 10
И and &&
ИЛИ or ||
Печать