看看这个:
求多位数的阶乘
源程序:
#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;
}