ld returned 1 exit status
查看原帖
ld returned 1 exit status
300078
pengyule楼主2021/6/13 15:35

求助,莫名其妙的编译错误,请教到底该怎么办

#include<bits/stdc++.h>
using namespace std;
struct integer {
    int p[205],len;
    integer(){
        memset(p,0,sizeof(p));
        len=0;
    }
}tb[1000][5000],One;
integer operator+(integer A,integer B){
    integer C;
    int i=1,f=0;
    for(;i<=max(A.len,B.len)||f;i++){
        C.p[i]=f+A.p[i]+B.p[i];
        f=C.p[i]/10;
        C.p[i]%=10;
    }
    C.len=--i;
    return C;
}
void print(integer A){
    for(int i=A.len;i;i--)cout<<A.p[i];
    puts("");
}
integer C(int n,int m){
    if(m==0)return One;
    if(n==m)return One;
    if(!tb[n][m].len)tb[n][m]=(C(n-1,m)+C(n-1,m-1));
    return tb[n][m];
}
int main()
{
    One.len=1,One.p[1]=1;
    int K,W;
    cin>>K>>W;
    int n=(W+K-1)/K;
    int li=W%K?(1<<W%K)-1:(1<<K)-1;
    integer ans;
    for(int i=1;i<=li;i++){
        int opt=(1<<K)-1-i;
        if(n-1>opt)break;
        ans=(ans+C(opt,n-1));
    }
    for(int i=n-1;i>=2;i--){
        if((1<<K)-1<i)continue;
        ans=(ans+C((1<<K)-1,i));
    }
    print(ans);
    return 0;
}
2021/6/13 15:35
加载中...