Questi esercizi mi stanno facendo impazzire...cerco di risolverli prima di chiedere un parere. Per quanto riguarda questo, dato che:
PiGreco = 4 -4/3 +4/5 -4/7 +4/9 -4/11....
Mi si chiede di mostrare il valore di PiGreco approssimato al primo termine della serie, poi al secondo e così via...e poi calcolare quanti termini mi servono per arrivare a 3.14, 3.141, 3.1415, 3.14159.
Ora io penso di averlo risolto...ma la mia soluzione...mi sa di codice penale...voi come avete fatto (o lo fareste?).
Alex
codice://Esercizio 5.20 public class CalcoloPiGreco { public static void main(String[] args) { double i=1; int n=2; int a=0,b=0,c=0,d=0; double PiGreco= 4; double PiGreco2=0; for (i=1;PiGreco2 != 3.14159;i +=2){ if (n%2 == 0){ PiGreco -= (4 /(i+2)); PiGreco2 = ((int)(PiGreco*100000))/100000.0; } else{ PiGreco += (4 /(i+2)); PiGreco2 = ((int)(PiGreco*100000))/100000.0; } n++; if (a == 0) if (( PiGreco2*100 >=314) && (PiGreco2*100<=315)){ a = n; } if (b==0) if (( PiGreco2*1000 >=3141) && (PiGreco2*1000<=3142)){ b = n; } if (c==0) if (( PiGreco2*10000 >=31415) && (PiGreco2*10000<=31416)){ c = n; } if (d==0) if (( PiGreco2*100000 >=314159) && (PiGreco2*100000<=314160)){ d = n; } System.out.printf("%.5f\n", PiGreco2); } System.out.printf("\n\n%d\t%d\t%d\t%d\t", a,b,c,d); } }

Rispondi quotando