Thread Rekursive Berechnung der Fakultät (7 answers)
Opened by Array at 2008-05-27 13:13

Array
 2008-05-27 13:13
#110347 #110347
User since
2008-02-27
6 Artikel
BenutzerIn
[default_avatar]
Hallo liebe Leute,

ich habe mal versucht die Fakultät iterativ und rekursiv zu berechnen.
Beides funktioniert auch!!!
Ich hätte nur mal eine spezielle Frage zur Rekursion.

Zum Verständnis: Ist es richtig, wenn ich behaupte die Funktion ruft sich in der Funktion immer wieder selbst auf? Der Wert von $zahl wird jeweils um 1 erniedrigt und wieder der Subroutine übergeben.
Das geht solange bis der Wert von $zahl 0 erreicht. Warum gibt er mir dann trotzdem den richtigen Wert aus und nicht 1 (ich meine hierbei die Zeile return 1 if $zahl == 0;)
In welcher Variablen steht denn eigentlich das Ergebnis der Multiplikation??
Irgendwie blicke ich da nicht ganz durch :-)



Hier der Auszug:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
if ($ir eq "R") {
print "Wert eingeben: ";
chomp($wert = <STDIN>);
print "Das Ergebnis lautet: " ,fakrek($wert),"\n";
}

sub fakrek {
my $zahl =shift ;
return undef if $zahl < 0;
return 1 if $zahl == 0;
return ($zahl * rek ($zahl -1));
}



Vielen Dank für euere Hilfe!!


Gruß

Array

View full thread Rekursive Berechnung der Fakultät