C语言,求N的阶乘

#include <stdio.h>
int gcd(int n)
{
long int i,sum=1;
for(i=1;i<=n;i++)
sum=sum*i;
return sum;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",gcd(n));
}
return 0;
}
我程序出现的问题是只能求出数字比较小的阶乘,怎样扩大可以求1000以内的阶乘,那位大哥解决有追分

第1个回答  2012-04-10
#include<stdio.h> int main() { int n,t,i; t=1; scanf("%d",远远大于2^64,所以,C的基本类型满足不了50以内阶乘程序设计要求。 ②所以,puzYjH追问

那怎么办?

第2个回答  2012-04-10
1000!大约有2500位数,你得找现成的”大整数实现“,或者自己写一个。

反正int是不够的追问

这个我知道呀,但是我就是不会写

第3个回答  2012-04-10
1000以内恐怕就得用数组或字符串来存储数字了。追问

能帮我写下吗?

相似回答