größter gemeinsamer Teiler berrechnen, funktioniert nur bei bestimmten Zahlen

kuzdu

Aktives Mitglied
Hi Leute,
nach dem mir bei anderen Problemen schon so super geholfen wurde. Hier habe ich ein Programm geschrieben, dass den größten gemeinsamen Teiler ausrechnet.
Hier erstmal der Code und dann das Problem:

Java:
package mycalc;
import java.io.*;


class CalcIt {
    public int ggT (int a, int b) {
   
        //deklarieren der Variablen
        int m = a;
        int n = b;
        int f = 0;
        int r;
        
        
        do
        {
       
          if(m < n) //m = 13, n = 64 
          {
          f = m;  //der Wert von m wird zwischengespeichert
          m = n;  //m erhält den Wert von n    
          n = f;  //n bekommt den zwischengespeicherten Wert f und wird somit wieder zu m
          //Die Werte haben getauscht m ist jetzt größer als n
          }  
           
          //funktioniert nur wenn m > n, stoppt sobald r == 0
          r = m - n;  
          m = n;   
          n = r;  
        
        }
        while(r != 0);
        return m; //Ergebnis der Methode ist m  
       }
}

public class MyCalc {

    
    public static void main(String[] args)
    {
        CalcIt c = new CalcIt();
      //   System.out.println("Ausgabe: "+c.ggT(48,32));   //Ausgabe richtig
          System.out.println("Ausgabe1: "+c.ggT(11,122)); //Ausgabe EINS falsch
          System.out.println("Ausgabe1: "+c.ggT(13,169)); //Ausgabe ZWEI korrekt
    }
}

Unten wird der größte gemeinsame Teiler der eingetragenden Zahlen berechnet. Bzw. je nach Zahl bekomme ich ein anderes Ergebnis.
Bei der Ausgabe 1: (11,122) bekomme ich als größtenTeiler 1, was falsch ist (er muss 11 sein). Bei dem nächsten Beispiel kriege ich aber korrekterweise 13 heraus.

Ich arbeite jetzt schon ewig an diesem Problem, finde allerdings keinerlei Anhaltspunkte, da scheinbar egal welche Zahlen, es mal funktioniert oder eben nicht. Unabhängig davon ob m oder n größer ist.


Bin um jede Hilfe dankbar.
Sorry für die blöden Variablennamen oder vllt den nicht so eleganten Weg(geht es klüger?), aber das meiste ist Vorgabe einer Uniaufgabe. (Diese ist auch schon erfüllt, es muss nur mit den Zahlen 48,32 gehen :D Aber mich schlaucht es doch etwas, dass das Prog. nicht auf jede Zahl anwendbar ist.)

Also wenn ihr Lust habt euch reinzufuchsen, freut mich das, wenn nicht, auch nicht so schlimm ;)

Gruß und noch einen schönen Abend!

kuzdu
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
L Größter gemeinsamer Teiler Java Basics - Anfänger-Themen 9
B größter gemeinsamer teiler Java Basics - Anfänger-Themen 6
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
B Erste Schritte Größter Abstand von 2 Zahlen aus 3 Zahlen ausgeben Java Basics - Anfänger-Themen 6
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
J Threads gemeinsamer Methoden Aufruf Java Basics - Anfänger-Themen 3
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
KogoroMori21 Größten gemeinsamen Teiler finden Java Basics - Anfänger-Themen 7
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
X Perfekte Zahlen mit Teiler ausgeben! Java Basics - Anfänger-Themen 29
S Zahl mit maximaler Anzahl von Teiler Java Basics - Anfänger-Themen 2
U Aufgabe - Teiler Java Basics - Anfänger-Themen 12
B Teiler einer Zahl ermitteln Java Basics - Anfänger-Themen 12
S Teiler ermittlen - Array erweitern? Java Basics - Anfänger-Themen 14
0 Anzahl der (primen) Teiler einer Zahl? Java Basics - Anfänger-Themen 6
G Ganzzahligen Teiler einer Eingabezahl k Java Basics - Anfänger-Themen 12
D ist a teiler von b? mit a und b gebrochene zahlen. Java Basics - Anfänger-Themen 6
C Teiler einer ganzen Zahl Java Basics - Anfänger-Themen 2
Y alle teiler einer zahl ausgeben Java Basics - Anfänger-Themen 23
J Teiler einer beliebigen Zahl ermitteln. Java Basics - Anfänger-Themen 19
G Ganzzahl oder nicht + gemeinsamen Teiler finden Java Basics - Anfänger-Themen 9
B größten gemeins. Teiler m. Euklidischen Algorith. nachbilden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben