0

如何计算 Microsoft Small Basic 中字符串的所有排列?

对所有排列的强力探索通常是通过 C 和 C++ 等语言中的递归来完成的。但是,Microsoft Small Basic 不支持函数的参数,因此不可能以相同的方式实现递归算法。

也许在 Small Basic 中使用堆栈是可行的?具体如何?

4

1 回答 1

-1

您不能在 Smallbasic 中的函数中使用参数,但由于所有变量都是全局变量,您可以在调用函数之前简单地设置它们并在函数中使用它们。函数也可以调用自身。这意味着您可以使用函数(或在 SB 中调用的子例程)来“强制”该算法。

看这里:

Sub Printx
  TextWindow.WriteLine(x)

  x = x + 1
  Printx()
EndSub

x = 1
Printx()

请注意,这种处理方式可能会在大约 2,000 次“调用”子例程后使程序崩溃,因为它会引发 stackoverflow 错误。

于 2017-12-26T23:32:35.563 回答