C51学习心得体会,递归调用程序设计举例
扫描二维码
随时随地手机看文章
迭代(循环)与递归(调用)对比
(1)二者都是建立在控制结构基础上的,迭代使用的是循环结构,递归使用的是选择机构;
(2)二者都用到了循环,迭代明确使用循环结构,递归通过反复调用函数实现循环;
(3)二者都用到了终止条件测试,迭代在继续循环条件为假时结束,递归在到达基本实例时终止的。
(4)二者都可能是无限的。
递归举例
1、阶乘 N!=N*(N-1)*...*2*1
long factorial(long number)
{
if(number<=1)
return 1;
else
return (number*factorial(number-1));
}
2、求和N+(N-1)+(N-2)+...+2+1
int sum(int number)
{
if(number<=0)
return 0;
else
return (number+sum(number-1));
}