递归//尽量用迭代法替代递归
1.迭代与递归的区别
迭代在循环条件为假时终止循环,递归在遇到基线情况是终止递归。
2.先找到最简的问题,当函数递归调用到最简形式即满足基线情况时,递归调用结束,然后逐级将函数返回值返回给上一级调用者
迭代法,无法使用公式一次求解,而需要用到迭代法
下面用 C语言 用for循环设计一个计算1!~n!的阶乘程序 n<=16
//下面用 C语言 用for循环设计一个计算1!~n!的阶乘程序 n<=16
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int j,n,sum=1;
printf("请输入n=");
scanf("%d",&n);
for(i=0;i<=n;i++) //从0!=1开始计算
{
for(j=i;j>0;j--) /* n!=n*(n-1)*(n-2)*...*1 */
sum*=j;
printf("%d!=%3d\n",i,sum);
sum=1;
}
getchar();
return 0;
}
运行结果
请输入n=10
0!= 1
1!= 1
2!= 2
3!= 6
4!= 24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
请按任意键继续. . .