2014年6月16日 星期一

1000 !

#include <cstdlib>
#include <iostream>

using namespace std;
int a[3000];

int n_to_array(int n)
{
  int j=0;
  while (n>0)
  {
       a[j] = n%10;
       n = n/10;
       j++;
  }
}

int array_mul(int n)
{
    int c[3000];  
    memset(c,0,3000*sizeof(c[0]));
    for (int i=0;i<3000;i++)
    {
       if (i==0)
          a[i] = a[i] * n;
       else
          a[i] = a[i] * n+c[i-1];
       c[i] = a[i]/10;
       a[i] = a[i]%10;
    }
}

int out_array(int *a)
{
   int i=3000-1;
   while (a[i] == 0)
     i--;
   while (i>=0)
   {
      cout << a[i];
      i--;
   }
   cout << endl;
 
}

int main()
{

    int n;  
    while ( cin >> n)
    {
       memset(a,0,3000*sizeof(a[0]));
       a[0]=1;
       //n_to_array(1);
       for (int i=1;i<=n;i++)
           array_mul(i);
       out_array(a);
    }
 
    //system("PAUSE");
    return EXIT_SUCCESS;
}


沒有留言: