【发布时间】:2014-06-17 06:25:31
【问题描述】:
为了简单起见,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
注意:我刚刚写的,可能有错误。
你看图片。我正在手动创建一个堆栈并使用它来模拟局部变量并将其用于递归。
有没有一种简单的方法来创建这个递归函数?
【问题讨论】:
标签: recursion global-variables smallbasic