hi
ja ich weiss, ich bin auch nicht so vin VisualBasic überzeugt, aber da ich wirklich nichts anderes da hab habe ich versucht ein paar kleine Makros für Excel zu schreiben. So Primfaktorzerlegung, Fibonacci, das ganze programm halt.
nun habe ich versucht die Primfaktorzerlegung Rekursiv zu implementieren.
leider kommt immer der fehler 26: Stapelspeicher voll.
mein code:
Code:
Public Function Prim_Recursion(zahl As Long, faktor As Long, zeile As Long) As Integer
If zahl > 0 Then
If zahl Mod faktor = 0 Then
Tabelle1.Cells(zeile, 2) = faktor
zahl = Round(zahl / faktor)
Tabelle1.Cells(zeile, 3) = zahl
Prim_Recursion = Prim_Recursion(zahl, faktor, zeile + 1)
Else
Prim_Recursion = Prim_Recursion(zahl, faktor + 1, zeile)
End If
End If
End Function
Sub PrimRec()
Tabelle1.Cells(2, 1) = Prim_Recursion(Tabelle1.Cells(1, 1), 2, 1)
End Sub
warum?
das kommt auch wenn in (1,1) 12 steht.
das ergebnis wird (ganz nebenbei) völlig korrekt angezeigt.
auch mit größeren zahlen und mehr faktoren funzt es (zb 1024)
habe ich irgendwas übersehen, wo es sich "zum handkoffer" rekursiert (oder so..)?
mfg gereon
[edit=sakura] [Klammern ersetzt] Mfg, sakura[/edit]