GGT Iterativ bestimmen |
05.12.2014, 13:20 | Auf diesen Beitrag antworten » | |||||||||||||||
neuling96 | GGT Iterativ bestimmen Hallo, ich soll den GGT iterativ in java erstellen. Hier mein Vorschlag: public static GGT ( int a, int b) { while (a != b){ if (a>b) { a=a-b; b=b-a;} } return a; } } |
|||||||||||||||
|
||||||||||||||||
05.12.2014, 14:06 | Auf diesen Beitrag antworten » | |||||||||||||||
eulerscheZahl | Und für a < b hängen wir in der while Schleife fest, bis der Nutzer ein Erbarmen hat und das Programm beendet? Der Algorithmus sieht verkehrt aus, wirf mal einen Blick auf das, was Euklid dazu hat. Mit modulo kommst du übrigens noch schneller ans Ziel. |
|||||||||||||||
05.12.2014, 14:22 | Auf diesen Beitrag antworten » | |||||||||||||||
neuling96 |
Wieso? Wenn a<b gilt wird doch die Differenz gebildet b=b-a und solange a!=b. |
|||||||||||||||
05.12.2014, 14:37 | Auf diesen Beitrag antworten » | |||||||||||||||
eulerscheZahl | dann fehlt aber ein else. Derzeit wird bei a>b erst etwas von a abgezogen und dann von b. Für a < b passiert nichts, aber aus dem while kommst du auch nicht raus, da ja a != b ist. |
|||||||||||||||
Anzeige | ||||||||||||||||
|
||||||||||||||||
05.12.2014, 14:42 | Auf diesen Beitrag antworten » | |||||||||||||||
neuling96 | public static GGT ( int a, int b) { while (a != b){ if (a>b) { a=a-b; else b=b-a;} } return a; } } ich komm aus while raus sobald a=b gilt, und das ist auch das ggt bsp a= 5 b=2 1 durchgang a=3 b=2 2 durchgangg a=1 b=2 3 durchgang a=1 b=1 schleife beendet , da a!=b false ist oder a=3,b=6 1) a=3 b=3 schleife beendet, a!=b false ist oder habe ich da ein denk fehler |
|||||||||||||||
05.12.2014, 14:50 | Auf diesen Beitrag antworten » | |||||||||||||||
eulerscheZahl | Jetzt (mit else) stimmt dein Vorgehen. hier ist aber die Klammersetzung falsch:
das wird der Compiler so nicht schlucken - entweder
oder
|
|||||||||||||||
05.12.2014, 14:51 | Auf diesen Beitrag antworten » | |||||||||||||||
neuling96 | vielen dank |
|