Mam napisać program który podaje sumę składników x^n/n!
Z tym, że x wprowadza użytkownik, a n zmienia się od 0 do wartości przy której przyrost sumy jest mniejszy od zadanej przez użytkownika dokładności.
Niestety próbuję na różne sposoby a program nie działa.
import java.util.Scanner;
import java.util.*;
import javax.swing.*;
public class MetodyZadanie4b {
public double suma(double x, double dokladnosc){
double n=0;
double suma=0;
double potega;
do{
potega = (double)Math.pow(x, n);
double s=1;
for(int i=1;i<=n;i++) s*=i;
suma=suma+(potega/s);
n=n+1;
}
while(suma<dokladnosc);
return suma;
}
}
import java.util.Scanner;
import javax.swing.JOptionPane;
class Main{
public static void main(String[]args){
double n;
String liczba1;
int Powtarzanie;
MetodyZadanie4b metody = new MetodyZadanie4b();
do{
liczba1 = JOptionPane.showInputDialog(null, "Podaj pierwsza liczbe:");
double x = Double.parseDouble(liczba1);
String liczba2 = JOptionPane.showInputDialog(null, "Podaj dokladnosc:");
double dokladnosc = Double.parseDouble(liczba2);
JOptionPane.showMessageDialog(null, "Suma skladnikow (x^n)/n! = " + metody.suma(x, dokladnosc) + "\n");
Powtarzanie = JOptionPane.showConfirmDialog(null, "Kontynuowac?", "Pytanie", JOptionPane.YES_NO_OPTION);
}
while (Powtarzanie == JOptionPane.YES_OPTION); ;
System.exit(0);
}
}
Mógłby ktoś wyjaśnić co robię źle i co mogę poprawić? A może to zadanie powinno się wykonać inaczej, jednak żaden sposób mi się nie udał i nie wiem w czym tkwi problem.
Z góry dziękuję za pomoc.