Задача:
Даны действительные числа [latex]a_{1}, a_{2},\ldots[/latex] .
Известно, что [latex]a_{1} > 0,[/latex] и что среди [latex]a_{2}, a_{3},\ldots[/latex] есть хотя бы одно отрицательное число.
Пусть [latex]a_{1},\ldots,a_{n}[/latex] — члены данной последовательности, предшествующие первому отрицательному члену([latex]n[/latex] заранее неизвестно)
Получить:
г) среднее геометрическое [latex]a_{1},\ldots,a_{n}[/latex].
Тесты:
Последовательность | Среднее геометрическое |
3 6 8 -9 4 5 | 5.24 |
13 14 1 4 5 6 -8 1 12 | 5.29 |
2 -3 4 | 2.00 |
2 2 2 -3 2 3 4 5 | 2.00 |
79 3 0.05 | 2.28 |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { Scanner x = new Scanner(System.in); double p = 1, a ; int c = 0; while( x.hasNext() ) { a = x.nextDouble(); if(a >= 0) { c++; p*=a; } else break; } System.out.printf("%.2f", Math.pow(p,1.0/c) ); } } |
Алгоритм:
Считывать числа с потока ввода. Умножаем числа пока не встретится отрицательное. После чего извлекаем корень используя данные счетчика.
Формула для нахождения Среднего геометрического : [latex]a_{gm} = \sqrt[n]{a_{1}\cdot a_{2}\cdot \ldots \cdot a_{n}}[/latex]
Рабочий код на ideone.com
— У Вас картинки вместо Latex для [latex]n[/latex].