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

问题描述 投票:0回答:1

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

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

也许它在使用Stack的Small Basic中是可行的?究竟怎么样?

algorithm smallbasic
1个回答
-1
投票

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

看这里:

Sub Printx
  TextWindow.WriteLine(x)

  x = x + 1
  Printx()
EndSub

x = 1
Printx()

请注意,这种处理方式可能会导致程序崩溃,因为它会抛出堆栈溢出错误,因此会在大约2,000次“调用”子程序之后。

© www.soinside.com 2019 - 2024. All rights reserved.