当前位置: 代码迷 >> C语言 >> [求助]请高手指教
  详细解决方案

[求助]请高手指教

热度:200   发布时间:2005-07-10 22:04:00.0
[求助]请高手指教
如何实现n(n>100)的阶乘,谢谢!
搜索更多相关的解决方案: 指教  

----------------解决方案--------------------------------------------------------
main()
{static i;
int n=1;
scanf("%d",&i);
while(i>0)
   {n=n*i;
   i--;}
   printf("%d",n);
   }
----------------解决方案--------------------------------------------------------
想解决溢出的问题?
----------------解决方案--------------------------------------------------------
是啊,要不然就太简单了。
----------------解决方案--------------------------------------------------------
看看这个:
求多位数的阶乘
源程序:
#include<iostream.h>
#define N 100000
int main()
{
int a[N],m,n,i,j,w;
a[0]=1;
for(i=1;i<N;i++)
a[i]=0;
cout<<"计算n!,请输入n"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
w=0;
for(j=0;j<N;j++)
{
a[j]=a[j]*i+w;
w=0;
if(a[j]>=10)
{
w=a[j]/10;
a[j]=a[j]%10;
}
}
}
for(i=N-1;i>=0;i--)
{
if(a[i]!=0)
{
m=i;
cout<<"共"<<m<<"位"<<endl;
break;
}
}
cout<<n<<"!为: "<<endl;
for(i=m;i>=0;i--)
cout<<a[i];
cout<<endl;
return 0;
}
----------------解决方案--------------------------------------------------------
如果数组大小支持到100000的话,那那楼上的程序就是可以储存达100000位的结果了
可惜呀可惜
----------------解决方案--------------------------------------------------------
楼上的什么意思啊?

我感觉达不到100000吧

定义的int 只能支持到32767呀,是这样吗?
----------------解决方案--------------------------------------------------------
能不能用C啊,C++我不懂啊,我还只是不初学者而已,万分感谢!
----------------解决方案--------------------------------------------------------
怎么没人回啊,难道有这么难吗????????????????????????????????
----------------解决方案--------------------------------------------------------
此贴被knocker锁定。原因:楼主没有讨论的欲望。
----------------解决方案--------------------------------------------------------
  相关解决方案