求助
查看原帖
求助
195388
alvis楼主2021/4/25 09:15

本地测评是对的,然而在你谷上错了。

#include <bits/stdc++.h>
using namespace std;

struct node{
    int a[10010],len;
    void clear() {len = 1,memset(a, 0, sizeof a);};
    void calc(){
        for(int i=1;i<=len;i ++){
            if(a[i]>=10)a[i+1] +=a[i]/10,a[i]%=10,len = max(len,i+1);
        }
    }
    
    void read(){
        clear();
        char c = getchar();
		len = 0;
        while(c >= '0' && c <= '9'){a[++len]=c-'0';c = getchar();}
        for(int i=1;i<len-i+1;i ++)swap(a[i],a[len-i+1]);
    }
    
    friend node operator +(const node &a, const node &b){
        node s;s.clear();s.len = max(a.len, b.len);
        for(int i=1;i <= s.len;i ++){
            s.a[i] = a.a[i] + b.a[i];
        }
        s.calc();
        return s;
    }
    
};

int main(){
	node a, b;
	a.read();b.read();
	node c = a+b;
	for(int i=c.len;i >= 1;i --){
	    cout << c.a[i];
	}
} 

求助!

2021/4/25 09:15
加载中...