了解每个递归函数都可以转换为迭代版本。有人可以帮我找到这个伪代码的迭代版本吗?我试图优化代码和递归显然不是要走的路线递归到迭代转换
sub calc (a, b)
{
total = 0;
if(b <= 1)
return 1
if(2*a > CONST)
for i IN (1..CONST)
total += calc(i, b-1) ;
else
for j IN (2*a..CONST)
total += calc(j, b-1) ;
return total;
}
CONST = 100;
print calc (CONST,2000);
感谢您的帮助!
什么是总数?它是在别处定义还是应该在函数体内初始化? – AlexFoxGill
在体内初始化 – Techmonk
谢谢。另外,也许你可以提供一些样本输入和输出?算法看起来几乎就像你不需要迭代或递归,而只是一个数学公式。 – AlexFoxGill