Kann mir jemand bei dieser VBA PROGRAMMIERUNG helfen?

... komplette Frage anzeigen

2 Antworten

Public Function my_fakultaet(z As Double) As Double
If z <= 0 Then z = 1
Select Case z
  Case 2 To 170
    my_fakultaet = z * my_fakultaet(z - 1)
  Case 1
    my_fakultaet = 1
End Select
End Function

170 als Obergrenze ist mutig. Die Zahlen werden schnell sehr groß. Bei mir scheitert der Versuch schon bei z=13

Ist Fakultät für Gleitkommazahlen definiert? Wenn nicht, würde ich z als Byte und die Funktion als Long definieren.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von maximilianus7
28.10.2015, 14:15

und wenn du stattdessen:

If z <= 1 Then 
z = 1
Else
my_fakultaet = z * my_fakultaet(z - 1)

nimmst,  brauchst du auch kein select

0

Dann füg doch einfach diesen Fall (Case) an? oO Brauchst ja nicht unbedingt ein "If" dafür

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?