大数阶乘

输入一个小于1000的正整数,打印n! = 1*2*3*...*n的值。

#include <iostream>
#include <cstring>
using namespace std;

const int maxn = 3000;
void fun(int n)
{
      int i, j;
      int f[maxn];
      memset(f, 0, sizeof(f));
      f[0] = 1;
      for (i = 2; i <= n; i++)
      {
          int c = 0;
          for (j = 0; j < maxn; j++)
          {
              int temp = f[j]*i + c;
              f[j] = temp % 10;
              c = temp / 10;
          }
      }

      for (i = maxn-1; i >= 0; i--)
      {
          if (f[i] > 0)
          {
              break;
          }
      }

      for (j = i; j >= 0; j--)
      {
          cout << f[j];
      }
      cout << endl;
}


你可能感兴趣的:(大数阶乘)