"stdio.h"
main()
{
int
n,i
double
p=1//这里用的是Double,不用Int,因为Int范围太小了
printf("请输入一个数字:")
scanf("%d",&n)
for(i=2i<=ni++)
p*=i
printf("n!=%lf\n",p)
}
利用for循环,不断求1*2一直乘到n,最后输出n!
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
int main(void){
int n,i
double x,relt,t
printf("Input n &x(n int/x double)...\n")
scanf("%d%lf",&n,&x)
for(relt=t=i=1i<=nrelt+=(t*=x)/=i++)
printf("The result is %f.\n",relt)
return 0
}
编程实现计算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=1i<=ni++)//for循环求累积
s=s*i
printf("%d\n",s)
return 0
}
/*
运行结果:(例如求5的阶乘)
5
120
*/