为了简单起见,Smallbasic只有全局变量。它没有本地人或参数。仅使用全局变量的递归
虽然这样可以简化教学或学习,但它也使复杂的一些问题,如递归函数。我很难在smallbasic中创建一个简单的递归函数,并且不得不使用手动堆栈。这有效,但它使它更复杂,与简单的最初主要目标相矛盾!
这是怎么了,我可以写的阶乘:
n = 5
ind = 1
fact()
TextWindow.WriteLine("fact(5)=" + f)
Sub fact
If n = 1 Then
f = 1
Else
ind = ind+1
keepn[ind] = n
n = n-1
fact()
f = f * keepn[ind]
ind = ind-1
EndIf
EndSub
注:我写的只是现在,它可能有错误。
您看到图片。我手动创建一个堆栈并使用它来模拟局部变量并将其用于递归。
有没有简单的方法来创建这个递归函数?