Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

VB: Stapelspeicher voll bei Rekursion

  Alt 19. Apr 2005, 09:07
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]
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat