c语言通过递归形式求10

Python017

c语言通过递归形式求10,第1张

n的阶乘,就是从1开始乘到n,即1*2*3*...*(n-1)*n。

即n!=1*2*3*...*(n-1)*n。

而(n-1)!=1*2*3*...*(n-1)。

所以可以得出,n!=(n-1)!

*

n。

由这个概念,可以得出递归求阶乘函数fact的算法:

1

如果传入参数为0或1,返回1;

2

对于任意的n,返回n*fact(n-1)。

代码如下:

int fact(int n)

{

if(n == 0 || n == 1) return 1

return n*(fact(n-1))

}

#include <stdio.h>//主函数

main()

{

int i,a,s=1//定义变量

printf("输入要算的阶乘数:")

scanf("%d",&a)

for(i=1i<a+1i++)//阶乘计算

{

s=s*i

}

printf("%d\n",s)//打印结果

}