Hallo,
ich habe Probleme mit der Funktionsweise von Rekusion.
hier ein Beispiel
mir ist ein Rätsel wieso das klappt, meinem Verständnis nach würde das ganze so ablaufen (mit der zahl 222) :
erster Durchlauf (222>10) also BerechneQuersumme(222/10) = 22 BerechneQuersumme(222%10)=2
zweiter Durchlauf(22>10) also BQ= 22/10= 12 22%10=2
dritter durchlauf(12>10) also 12/10=1 12%10=2
vierter durchlauf(1<10) deshalb gib 1 zurück.
und nun würde ich alle zwischschritte zusammen rechnen, also 22+2 + 12+ 2 + 1+ 2
und das würde nun mal ein falsches Resultat ergeben.
Ich wäre dankbar wenn mich jemand über meinen Denkfehler aufklären könnte
ich habe Probleme mit der Funktionsweise von Rekusion.
hier ein Beispiel
Java:
public static int BerechneQuersumme(int zahl)
{
if(zahl<10)
{
return zahl;
}
return BerechneQuersumme(zahl/10) +BerechneQuersumme(zahl%10);
}
mir ist ein Rätsel wieso das klappt, meinem Verständnis nach würde das ganze so ablaufen (mit der zahl 222) :
erster Durchlauf (222>10) also BerechneQuersumme(222/10) = 22 BerechneQuersumme(222%10)=2
zweiter Durchlauf(22>10) also BQ= 22/10= 12 22%10=2
dritter durchlauf(12>10) also 12/10=1 12%10=2
vierter durchlauf(1<10) deshalb gib 1 zurück.
und nun würde ich alle zwischschritte zusammen rechnen, also 22+2 + 12+ 2 + 1+ 2
und das würde nun mal ein falsches Resultat ergeben.
Ich wäre dankbar wenn mich jemand über meinen Denkfehler aufklären könnte