![]() |
VB: Stapelspeicher voll bei Rekursion
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:
warum?
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 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] |
Re: VB: Stapelspeicher voll bei Rekursion
AAARGGHHH
sry für den post, hab den fehler... der letzte faktor ist natürlich 1, und nicht 0 :wall: :wall: :wall: ich poste nochmal den korrekten code:
Code:
@sakura: hatte ich doch :gruebel:
Public Function Prim_Recursion(zahl As Long, faktor As Long, zeile As Long) As Integer
If zahl > 1 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) + 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz