Задача
Условие
Задана последовательность действительных чисел $a_{1}$, $a_{2}$,…, $a_{n}$. Определить сумму и количество положительных элементов, индексы которых делятся на $3$ без остатка.
Входные данные
В первой строке задано количество элементов $n$ ($n \leq 100$) в последовательности. В следующей строке находится $n$ вещественных чисел, значение каждого из которых по модулю не превышает $100$.
Выходные данные
В одной строке вывести количество искомых элементов и их сумму, вычисленную с точностью до двух десятичных знаков.
Тесты
№ | Входные данные | Выходные данные |
1 | 6 6 7.5 2.1 2.0 0 -3 |
1 2.10 |
2 | 3 12 0.33 -14 |
0 0.00 |
3 | 1 -3.4 |
0 0.00 |
4 | 12 0 15.3 -1 144 0.333 17.5 -69 456 2.5 0 3 13 |
3 33.00 |
Решение
Для решения этой задачи необходимо просмотреть все элементы последовательности и выбрать из них те, номера которых кратны трём, а сами элементы положительны. Далее вычисляем количество таких чисел и их сумму.
В данной реализации используются цикл и условный оператор. Также необходимо задать точность. Для этого используем функцию
setprecision().
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <iomanip> // для setprecision() using namespace std; int main() { int n; // количество элементов последовательности cin >> n; int num = 0; // счётчик количества выбранных элементов double sum = 0; // сумма выбранных элементов for (int i = 1; i <= n; i++) { // цикл для просмотра всех элементов последовательности double a; // элемент последовательности cin >> a; if ((i%3) == 0 and a > 0) { // проверка на соответствие условиям num++; sum += a; } } cout << num << " " << fixed << setprecision(2) << sum << endl; return 0; } |