#include
"stdio.h"
main()
{
int
n,i;
double
p=1;//这里用的是Double,不用Int,因为Int范围太小
printf("请输入一个数字:");
scanf("%d",&n);
for(i=2;i<=n;i++)
p*=i;
printf("n!shu=%lf\n",p);
}
扩展资料:
用Ruby求 365 的阶乘。
def AskFactorial(num) factorial=1;
step(num,1){|i| factorial*=i}
return factorial end factorial=AskFactorial(365)
puts factorial
阶乘有关公式
该公式常用来计算与阶乘有关的各种极限。
此为斯特林公式的简化公式。
参考资料来源:百度百科-阶乘
n = 1;
for(i = 1; i <= NUMBER; i++)
n *= i;
就好了
用递归也行,不过这样最简单了
#include
"stdio.h"
main()
{
int
n,i;
double
p=1;//这里用的是Double,不用Int,因为Int范围太小了
printf("请输入一个数字:");
scanf("%d",&n);
for(i=2;i<=n;i++)
p*=i;
printf("n!=%lf\n",p);
}
这个问题别人问过,你在百度上搜一搜就有现成的。
需要注意的是,楼上的方法对于n比较小的情况适用(不会大于20)。
再大的数,就超出int类型表示了。
对于一个数字n,不考虑溢出,可用下面的C程序
f=1; //初始化
for(i=2;i<=n;i++)
f*=n;
结果在f中