Hi Leute,
habe eine drigende Frage. Muss für die Uni ein kleines Programm schreiben. In dem Programm habe ich eine Eingabe Zahl als Bruch BSP: 266 / 115. Nun soll ich die Kettenbruchentwicklung ausrechnen, dass ist mir mit dem euklidischen Algorithmus auch gelungen. Die Werte werden in ein Array gespeichert und in dieser Form wieder ausgegeben: [2,3,5,7]. So weit so gut. Allerdings hat mein Array 10 Elemente, also habe ich ja ab dem 5 Element nur Nullen, die hab ich mit einer if Anweisung einfach nicht mit ausgegeben. So! So weit ist ja noch alles klar.
Jetzt kommts. Ich muss jetzt noch den Näherungswert für jeden Schritt angeben. Die Werte habe ich ja in meinem Array gespeichert und kann diese auch auslesen. Wie ich den Kehrwert bilde weiß ich auch, aber irgendwie gibt er mir immer was falsches aus. Außerdem soll ich die Zahlen dann auch noch in der Form 266/115, 2/1, 37/16 usw darstellen und nicht als zB double Wert ausgerechnet. Im Moment sieht das entscheidene KOnstrukt so aus, aber das geht leider nicht!
Hoffe, dass mir einer von euch Genies
helfen kann! Würd mich freuen, danke!
Gruß
timkon
habe eine drigende Frage. Muss für die Uni ein kleines Programm schreiben. In dem Programm habe ich eine Eingabe Zahl als Bruch BSP: 266 / 115. Nun soll ich die Kettenbruchentwicklung ausrechnen, dass ist mir mit dem euklidischen Algorithmus auch gelungen. Die Werte werden in ein Array gespeichert und in dieser Form wieder ausgegeben: [2,3,5,7]. So weit so gut. Allerdings hat mein Array 10 Elemente, also habe ich ja ab dem 5 Element nur Nullen, die hab ich mit einer if Anweisung einfach nicht mit ausgegeben. So! So weit ist ja noch alles klar.
Jetzt kommts. Ich muss jetzt noch den Näherungswert für jeden Schritt angeben. Die Werte habe ich ja in meinem Array gespeichert und kann diese auch auslesen. Wie ich den Kehrwert bilde weiß ich auch, aber irgendwie gibt er mir immer was falsches aus. Außerdem soll ich die Zahlen dann auch noch in der Form 266/115, 2/1, 37/16 usw darstellen und nicht als zB double Wert ausgerechnet. Im Moment sieht das entscheidene KOnstrukt so aus, aber das geht leider nicht!
Code:
//Berechnung der Näherungswerte
System.out.println("\nDie Näherungswerte lauten: ");
System.out.println((int)a[0] + "/" + 1);
for(int b = 1,c = 2; a[b] != 0; b++,c++) {
if(a[b] != 0 ) {
double n = (1/(a[b] + (1/a[c]))) * 1;
double n2= a[0] + n;
System.out.println(n2);
}
else {
break;
}
}
Hoffe, dass mir einer von euch Genies
Gruß
timkon