kleines rekursionproblem
-
Hi all
ich hab folgenden code geschrieben und ich wundere mich wieso das so nicht funktionieren soll
vielleicht ist es auch einfach was mit den modifikatoren weil ich mich da noch nicht besonders auskenne
wäre super wenn jemand helfen kann
byepublic class KGV { public static void main(String[] args) { int m=4; int n=3; kgv(m,n); } public static int kgv (int m, int n) { int ergebnis=1; if (m%n==0) ergebnis=m; else ergebnis=kgv(m+n,n); System.out.println(ergebnis); return ergebnis; } }
-
du suchst nach dem kleinsten gemeinsamen vielfachen?
gab schon oft diskussionen darüber..
hier:
http://www.c-plusplus.net/forum/viewtopic.php?t=23171&highlight=kgv
http://www.c-plusplus.net/forum/viewtopic.php?t=22490&highlight=kgv
http://www.c-plusplus.net/forum/viewtopic.php?t=68664&highlight=kgv...
-
hi
zunächst ma danke für die antwort
eine alternative lösung mit nem anderen algo hab ich schon, aber es geht mir ehr um den rekursiven aufruf bzw was am code oben falsch istbye
-
Ich glaube Dein Problem liegt am Algo...
Du rufst die Funktion kgv mit dem Parameter m+n, n auf. Wenn Du das nur mal einfach durchrechnest, merkst Du schnbell den Fehler...
1. Aufruf: 4, 3 => false
2. Aufruft 7, 3 => false
3. Aufruf: 10, 3 => false
4. Aufruf 13, 3 => falseDas kgv müsste aber 12 sein... Anosnten guck Dir mal die Links von elise an...
-
ahh danke man sollte es doch immer mal durch checken was man so schreibt
gruss