dimanche 22 février 2015

Rekursion

Hallo,

ich habe Probleme mit der Funktionsweise von Rekusion.

hier ein Beispiel


Java Code:






  1. public static int BerechneQuersumme(int zahl)



  2. {



  3. if(zahl<10)



  4. {



  5. return zahl;



  6. }



  7. return BerechneQuersumme(zahl/10) +BerechneQuersumme(zahl%10);



  8. }









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





Rekursion

0 commentaires:

Enregistrer un commentaire