Цель задачи: посчитать сумму чисел, которые помечены как подходящие для помидоров. Подходят те теплицы, где число кустов является чётным и не превышает 100. Остальные пройдут под огурцы и не учитываются.
Пошаговое решение (детальное объяснение)
- Прочитать N — количество теплиц.
- Завести переменную sum = 0 — сюда будем накапливать сумму кустов подходящих теплиц.
- Для каждого из N следующих чисел x выполнить проверку условия:
- чётность: x делится на 2 без остатка, то есть x % 2 == 0;
- ограничение по величине: x <= 100. Если оба условия выполняются, прибавить x к sum.
- После обработки всех теплиц выдать значение sum — это и есть суммарное количество кустов помидоров.
- Сложность: время O(N), память O(1).
Пояснения по условиям
- Чётное число определяется остатком от деления на 2: x % 2 == 0.
- Не больше 100 означает строго не превышать 100: x <= 100.
- Только числа, удовлетворяющие обоим условиям, добавляются к сумме.
Пример
- Вход: N = 5 числа: 8, 120, 40, 7, 100
- Разбор: 8 — чётно и ≤100 → учитывать (сумма=8) 120 — нечётно или >100 (не подходит) → игнорировать 40 — чётно и ≤100 → учитывать (сумма=8+40=48) 7 — не чётное → игнорировать 100 — чётно и ≤100 → учитывать (сумма=48+100=148)
- Вывод: 148
Альтернативные реализации
Псевдокод: счётчик сумм = 0 считать N для i = 1..N: считать x если x mod 2 == 0 и x <= 100: сумма += x вывести сумма
Пример реализации на Python: def sum_tomatoes(nums): total = 0 for x in nums: if x % 2 == 0 and x <= 100: total += x return total
Пример использования
nums = [8, 120, 40, 7, 100]
print(sum_tomatoes(nums)) # -> 148
- Пример реализации на C++:
#include <bits/stdc++.h> using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; if (!(cin >> N)) return 0; long long sum = 0; for (int i = 0; i < N; ++i) { int x; cin >> x; if (x % 2 == 0 && x <= 100) sum += x; } cout << sum << "\n"; return 0; }
- Пример реализации на Java: import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); long sum = 0; for (int i = 0; i < N; i++) { int x = sc.nextInt(); if (x % 2 == 0 && x <= 100) sum += x; } System.out.println(sum); sc.close(); } }
Если хочешь, могу помочь проверить твой конкретный входной набор и вывести результат, либо дать более компактный/прагматичный код под выбранный язык.