as_string |
Du kannst ja eben so vorgehen, wie der Computer:
Die Funktion wird erst mit 10 als Argument aufgerufen. 10 ist größer als 1, also gibt die Funktion 10 plus den Funktionswert von 9 zurück.
Der Funktionswert von 9 ist 9 plus der Funktionswert von 8
Der Funktionswert von 8 ist 8 plus der Funktionswert von 7
Der Funktionswert von 7 ist 7 plus der Funktionswert von 6
Der Funktionswert von 6 ist 6 plus der Funktionswert von 5
Der Funktionswert von 5 ist 5 plus der Funktionswert von 4
Der Funktionswert von 4 ist 4 plus der Funktionswert von 3
Der Funktionswert von 3 ist 3 plus der Funktionswert von 2
Der Funktionswert von 2 ist 2 plus der Funktionswert von 1
Der Funktionswert von 1 ist 1 (das ist der Rekursionsabbruch)
Ab hier kannst Du rückwärts einsetzen, also gehst Du die ganze Liste wieder aufwärts:
Der Funktionswert von 2 ist 2 plus der Funktionswert von 1, den kennen wir jetzt, der ist nämlich 1, so dass die Funktion dann den Wert 1+2 = 3 zurück gibt.
Der Funktionswert von 3 ist 3 plus der Funktionswert von 2, den kennen wir jetzt, der ist nämlich 1+2=3, so dass die Funktion dann den Wert 1+2+3 = 6 zurück gibt.
Der Funktionswert von 4 ist 4 plus der Funktionswert von 3, den kennen wir jetzt, der ist nämlich 1+2+3, so dass die Funktion dann den Wert 1+2+3+4 zurück gibt.
Und so weiter. Die Funktion rechnet also immer die Summe aller Zahlen von 1 bis zu dem Funktionswert aus.
Das kann auch die Gaußsche Summenformel. Die geht einfach: Wenn man hier n=10 einsetzt, rechnet man (10*11)/2 = 55
Gruß
Marco |