为什么过不了编译
查看原帖
为什么过不了编译
1074084
asd890123楼主2024/3/16 11:02
#include <cstdio>
#include <cstring>

const int MAXN = 205;

struct IntN{
    
    short n,len,a[MAXN];
    
    short operator[](short i){
        return a[i];
    }
    
    void flatten(short L){
        
        len = L;
        for (int i=1;i<=len;i++)
            a[i+1] += a[i]/n,
            a[i] %= n;
        
    }
    
    void in(){
        
        char str[MAXN];
        
        scanf("%s",str);
        len = strlen(str);
        
        for (int i=len-1,j=1;i>=0;i--,j++)
            a[j] = (str[i] >= '0' && str[i] <= '9') ? str[i] - '0' : str[i] - 'a' + 10;
        
    }
    
    void out(){
        
        for (int i=len;i>=1;i--)
            putchar(a[i] < 10 ? a[i] + '0' : a[i] - 10 + 'a');
        
    }
    
};

IntN operator+(IntN a,IntN b){
    
    IntN c;
    short len;
    
    len = a.len > b.len ? a.len : b.len;
    for (short i=1;i<=len;i++) c[i] = a[i] + b[i];
    c.flatten(len+1);
    
    return c;
}

signed main(){
    
    short n;
    IntN x,y,z;
    
    scanf("%hd",&n);
    x.n = n,y.n = n,z.n = n;
    x.in();
    y.in();
    z = x + y;
    z.out();
    
    return 0;
}

~~

2024/3/16 11:02
加载中...