919. Номер на 3
Задан одномерный
массив вещественных чисел. Определить сумму и количество положительных
элементов, индексы которых делятся на 3 без остатка.
Вход. В первой строке задано количество элементов n (n
≤ 100) в массиве. В следующей строке находится n вещественных чисел, значение каждого из которых по модулю не
превышает 100.
Выход. В единственной
строке вывести сначала количество искомых элементов массива и их сумму,
вычисленную с точностью до двух знаков после десятичной точки.
Пример
входа |
Пример
выхода |
6 6 7.5 2.1
2.0 0 -3 |
1 2.10 |
обработка
массивов
При помощи
одного линейного цикла находим сумму и количество положительных элементов
массива, индексы которых делятся на 3 без остатка.
Реализация алгоритма
Читаем длину массива n.
В переменной c подсчитываем количество положительных чисел, индексы
которых делятся на 3 без остатка. В
переменной s подсчитываем их сумму. Инициализируем эти переменные нулями.
scanf("%d",&n);
s = c = 0;
Читаем n чисел.
Вычисляем сумму и количество положительных элементов, индексы которых делятся на 3 без
остатка. Индексом
является переменная цикла i.
for (i = 1; i <=
n; i++)
{
scanf("%lf",&a);
if ((i % 3 ==
0) && (a > 0))
{
c++;
s += a;
}
}
Выводим ответ.
printf("%d %.2lf\n",c,s);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int c, n = con.nextInt();
double s, a;
s = c = 0;
for (int i = 1; i <= n; i++)
{
a = con.nextDouble();
if ((i % 3 ==
0) && (a > 0))
{
c++;
s += a;
}
}
System.out.printf("%d %.2f\n",c,s);
con.close();
}
}
Python реализация
n = int(input())
m = list(map(float,input().split()))
s = c = 0
Цикл идет со второго элемента до n-го
сшагом 3.
for i in range(2,n,3):
if m[i] > 0 :
c += 1
s += m[i]
print (c,"%.2f"%s)
Python реализация с вырезкой массива
n = int(input())
m = list(map(float,input().split()))
s = c = 0
Выбираем элементы, начиная со второго
и с шагом 3.
m = m[2::3]
for v in m:
if v > 0 :
c += 1
s += v
print (c,"%.2f"%s)