import java.util.Scanner;
public class SredniaGeometryczna {
public static double obliczPierwistekNStopnia(double a, int n){
double wynik=0;
//x^n-1
double temp = Math.pow(wynik, n-1);
double e = 0.000000001;
while (Math.abs(a - temp*wynik) >= e)
{
wynik = 1/n*((n-1)*wynik + (a/temp));//nowe przyblizenie
temp = Math.pow(wynik, n-1);
}
return wynik;
}
public static void main(String[] args) {
int iloscLiczb = 0;
double iloczyn = 1;
double sredniaGeometryczna = 0;
String input="";
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("Aby przerwać nacisnij k.\n Podaj liczbe: ");
input = sc.nextLine();
if(input.equals("k")){
System.out.println("Zakonczyles podawanie liczb.");
break;
}
else{
iloczyn *= Integer.parseInt(input);
iloscLiczb++;
}
}
sredniaGeometryczna = obliczPierwistekNStopnia(iloczyn, iloscLiczb);
System.out.println("Iloczyn liczb: " + iloczyn);
System.out.println("Średnia geometryczna: " + sredniaGeometryczna);
//Średnia geometryczna n liczb, to pierwiastek n-tego stopnia z iloczynu tych liczb.
}
}
Aby przerwać nacisnij k.
Podaj liczbe:
4
Aby przerwać nacisnij k.
Podaj liczbe:
5
Aby przerwać nacisnij k.
Podaj liczbe:
5
Aby przerwać nacisnij k.
Podaj liczbe:
9
Aby przerwać nacisnij k.
Podaj liczbe:
k
Zakonczyles podawanie liczb.
Iloczyn liczb: 900.0
Średnia geometryczna: NaN
Powinno wyjść około 3.9. Jak to poprawić ?
poprawienie znaczników <code> - fp