n!怎么编程实现?

如题所述

编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:

#include <stdio.h>

int Func(int n)
{
if(n < 2)

return 1;

else

return n*Func(n-1);

}

void main()
{
int n =0,m=0;

printf("请输入一个正整数:")

scanf("%d",&n);  

m=Func(n);

printf("%d!=%d\n",n,m);
}

在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。

程序输出结果如下:

扩展资料:

所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。

具体实现代码如下:

#include <stdio.h>

int main() {
int n,i,s=1;
scanf("%d",&n);

for(i=1;i<=n;i++)//for循环求累积

s=s*i;

printf("%d\n",s);

return 0;

}


/*
运行结果:(例如求5的阶乘)
5
120
*/

温馨提示:答案为网友推荐,仅供参考
相似回答