0分:RE+WA 求助大佬!
查看原帖
0分:RE+WA 求助大佬!
930718
Eason_lyx楼主2023/10/16 16:51
#include<bits/stdc++.h>
using namespace std;
int n;
struct Bigint{
    int big[10];
    int len=0;
    Bigint(){}
    Bigint(int sum){
        int qw=0;
        while(sum){big[++qw]=sum%10;sum/=10;}
        len=qw;
    }
}ans(0),chengshu(1);
void Bigint_jia(Bigint a,Bigint b,Bigint &c){
    c.len=max(a.len,b.len);
    for(int i=1;i<=c.len;i++)
    {
        c.big[i]+=(a.big[i]+b.big[i])%10;
        c.big[i+1]+=(a.big[i]+b.big[i])/10;
    }
    if(c.big[c.len+1])c.len++;
    return;
}
void Bigint_cheng(Bigint a,Bigint b,Bigint &c){
    c.len=a.len+b.len;
    for(int i=1;i<=a.len;i++)
        for(int j=1;j<=b.len;j++)
        {
            c.big[i+j-1]+=(a.big[i]*b.big[j])%10;
            c.big[i+j]+=(a.big[i]*b.big[j])/10;
        }
    if(c.big[a.len+b.len+1])c.len++;
    return;
}
void jie(int sum){
    for(int i=1;i<=sum;i++)
    {
        Bigint_cheng(chengshu,i,chengshu);
        Bigint_jia(chengshu,ans,ans);
    }
    for(int i=ans.len;i>=1;i--)
    {
        printf("%d",ans.big[i]);
    }
}
int main(){
    scanf("%d",&n);
    jie(n);
    return 0;
}
2023/10/16 16:51
加载中...