【发布时间】:2011-06-21 04:22:17
【问题描述】:
如何手动分析递归源代码?
例如,我设计了一种手动分析迭代源代码的技术,如下所示:
int fact(int n)
{
int f = 0;
int i = 0;
if (n<=1)
{
return 1;
}
f = 1;
i = 2;
for (i=2; i<=n ; i++)
{
f *= i;
}
return f;
}
---------------------------
i f new-f
---------------------------
---------------------------
---------------------------
对于每个“i”,我可以手动分析和计算 old-f 和 new-f 的值,并填写表格以查看例程是否正常工作。
但是如何手动分析递归例程?
int fact(int number) {
int temp;
if(number <= 1) return 1;
temp = number * fact(number - 1);
return temp;
}
【问题讨论】: