Задача
Даны действительные числа [latex] a_1 , a_2 \ldots[/latex]. Известно, что [latex] a_1 > 0[/latex] и что среди [latex] a_1, a_2, \ldots [/latex] есть хотя бы одно отрицательное число. Пусть [latex] a_1 , \ldots, a_n[/latex] -– члены данной последовательности, предшествующие первому отрицательному члену ([latex] n [/latex] заранее неизвестно). Получить:
в) среднее арифметическое [latex] a_1 , \ldots, a_n[/latex]
Тесты
Ввод | Вывод |
3 -2 -7 2 5 | 3 |
3.4 0.5 0 -7 -8 2 | 1.3 |
1 0 0 -2 | 0.333 |
1.5 2.4 3 3.8 -7.5 11 0 | 2.675 |
Код на С++
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> using namespace std; int main() { double sum = 0.0, number = 0.0, x; while ((cin >> x) && (x >= 0)) { sum += x; number++; } cout << sum/number; return 0; } |
Код на Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); double sum = 0.0, number = 0.0, x = 1; while (in.hasNext() && x >= 0) { x = in.nextDouble(); sum += x; number++; } System.out.println(sum / number); } } |
Решение
Считываем в цикле числа из стандартного ввода, пока это возможно и пока не встретится отрицательное число. В том же цикле вычисляем сумму введённых чисел и их количество. Возвращаем сумму, делённую на количество, — среднее арифметическое.
Зачтено