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:
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 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
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 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