Wallissche Produkt PI-Annäherung

JavaRookie21

Mitglied
Halli Hallo Leute,
hab eine Hausaufgabe in programmierung bekommen die die ich eigtl schon gelöst hab
also die aufgabe lautet:
Wie viele Faktoren sind notwendig, um sich hinreichend genau bis 5 Stellen nach dem Komma mit dem Wallis-Produkt der Kreiszahl PI anzunähern? Schreiben Sie ein Java Programm, das die Anzahl der Faktoren ermittelt.

So sieht meine Lösung aus:

Java:
class wallis{
	public static void main(String [] args){
		int n, k, i;
		double p, PI;
		n=1;
		k=1;
		p=2.0;
		i=2;
		PI=3.14159;
		
		while(p!=PI){
			p*=(2.0*n)/(2.0*k-1.0);
			if(i%2==0){
				k++;
			}
			if(i%2!=0){
				n++;
			}
			i++;
			System.out.println("i="+i);
			System.out.println("p="+p);
		}
	}
}
jetzt hab ich das Problem das meine while schleife nicht aufhört zu rechnen...er soll ja bei pi=3,14159 aufhören nur macht er das nicht...er rechnet einfach weiter...könnt ihr mir bei diesem kleinen problem vllt weiterhelfen? danke im voraus!
 
Zuletzt bearbeitet von einem Moderator:

JavaRookie21

Mitglied
hab jetzt ne if anweisung angefügt aber er betritt sie nicht ich versteh nicht warum...dann soll er p den wert 3.14159 zuordnen und somit die schleife verlassen...

Java:
class wallis{
	public static void main(String [] args){
		int n, k, i;
		double p, PI;
		n=1;
		k=1;
		p=200000.0;
		i=2;
		PI=3.14159;
		
		while(p!=PI){
			p*=(2.0*n)/(2.0*k-1.0);
			if(i%2==0){
				k++;
			}
			if(i%2!=0){
				n++;
			}
			if((p%10==9)&&((p/10)%10==5)&&((p/100)%10==1)&&((p/1000)%10==4)&&((p/10000)%10==1)&&((p/100000)%10==3)){
				p=3.14159;
			}
			i++;
			System.out.println("p="+p);
		}
		System.out.println("i="+i);
	}
}
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
p ist doch eine zahl 3.4234234

Wenn du das weiter teilst, dann hast du ganz schnell 0.000 ... u.s.w.

Und da mit % kommst du nicht weit

In dem anderen posting steht afaik noch was dazu
 

Neue Themen


Oben