迭代和递归 迭代和递归是数值计算中非常常见和多用的方法,循环结构通常可以用循环语句 for, while 等,还可以利用递归调用。
例题:采用递归调用计算 n 的阶乘。
(1)数值计算方法
当n=0时,阶乘等于0;当n=1时,fac=1;当n≥2时,fac(n)=n*fac(n-1)。
(2)程序设计思路及流程
输入一个数n,进行判断,若n等于0则阶乘为0,若n等于1则阶乘为1,若n大于等于2,则进入循环fac(n)=n*fac(n-1),最后输出该数的阶乘。
代码如下:
#include"stdio.h"
double fac(double n)
{
double s;
if(n>=2)
{
s=n*fac(n-1);
}
else if(n==1)
{
s=1;
}
else if(n==0)
{
s=0;
}
return s;
}
int main()
{
double s,n;
scanf("%lf",&n);
s=fac(n);
printf("%lf的阶乘为%lf",n,s);
return 0;
}
运行结果:
over!