直接的大数相乘问题,无话可说。

#include<iomanip>
#include <iostream>
using namespace std;
#define DEEP 1000000000
void mul(__int64* s,int a)
{
    int assist=0;
    for(int j=1;j<=s[0];j++)
    {
        s[j]=s[j]*a+assist;
        assist=s[j]/DEEP;
        s[j]%=DEEP;
    }
    if(assist>0)
    {
        s[0]++;
        s[s[0]]=assist;
    }
} 

int main()
{
    int num;
    while(cin>>num)
    {
        __int64 sum[5000];
        memset(sum,0,sizeof(sum));
        sum[0]=sum[1]=1;
        for(int i=1;i<=num;i++)
            mul(sum,i);
        cout<<sum[sum[0]];
        for(int j=sum[0]-1 ;j>=1;j--)
            cout<<setfill('0')<<setw(9)<<sum[j];
        cout<<endl;
    }
    return 0 ;
} 

相关文章:

  • 2021-08-31
  • 2021-05-15
  • 2022-12-23
  • 2021-10-18
  • 2022-02-02
  • 2022-02-08
  • 2022-12-23
  • 2021-05-30
猜你喜欢
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2021-08-15
  • 2022-02-17
  • 2021-10-27
相关资源
相似解决方案