Bootstrap

(自用)(C++)1173:阶乘和

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j,n,arr[10010]={0},s[10010]={0},len=1;
    arr[0]=s[0]=1;
    cin>>n;
    for(i=2;i<=n;i++)
    {
        for(j=0;j<len;j++)
        arr[j]*=i;
        for(j=0;j<len;j++)
        {
            if(arr[j]>=10)
            {
                if(j==len-1) len++;
                arr[j+1]+=arr[j]/10;
                arr[j]=arr[j]%10;
            }
        }
        for(j=0;j<len;j++)
        {
            s[j]+=arr[j];
            if(s[j]>=10)
            {
                s[j+1]+=s[j]/10;
                s[j]%=10;
            }
        }
    }
    for(i=len-1;i>=0;i--) cout<<s[i];
    return 0;
}

;