大数计算

//1000的阶乘可以用3000的数组来表示
#include<iostream>
#include<cstring>
using namespace std;
const int N=3000;
int main(void)
{
 int s[N];
 memset(s,0,sizeof(s));
 s[0]=1;
 int n;
 cin>>n;
 for(int i=2;i<=n;i++)
 {
  int flag=0;
  for(int j=0;j<N;j++)
  {
   s[j]*=i;
   s[j]+=flag;
   if(s[j]>=10)
   {    
    flag=s[j]/10;
    s[j]=s[j]%10;
   }
   else
       flag=0;
   
  }
 }
// cout<<s[0]<<endl;
 int flag=1;
 for(int i=N-1;i>=0;i--)
 {
  if(s[i]!=0||flag!=1)
  {
   cout<<s[i];
   flag=0;
  }
 }
 cout<<endl;
 return 0;
}

原文地址:https://www.cnblogs.com/cxwpluto/p/12433067.html