文章

52

粉丝

68

获赞

22

访问

11.5k

头像
大整数加法 题解:struct内部写法
P1474 武汉大学2018年机试题
发布于2025年1月26日 16:07
阅读数 81

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

const int LEN=1001;
struct BigInteger{
    int data[LEN];
    int length;
    void init(){
        for(int i=0;i<LEN;i++)data[i]=0;
    }
    BigInteger(string s){
        init();
        length=s.size();
        for(int i=0;i<length;i++){
            data[i]=s[length-1-i]-'0';
        }
    }
    BigInteger operator+(BigInteger b){
        BigInteger ans("");
        int carry=0;
        for(int i=0;i<length||i<b.length;i++){
            int k=data[i]+b.data[i]+carry;
            carry=k>=10?k/10:0;
            ans.data[ans.length++]=k%10;
        }
        if(carry!=0)ans.data[ans.length++]=carry;
        return ans;
    }
};
int main(){
    string a,b;
    while(cin>>a>>b){
        BigInteger x(a),y(b);
        BigInteger z=x+y;
        for(int i=z.length-1;i>=0;i--){
            cout<<z.data[i];
        }cout<<endl;
    }
}

看着很复杂,其实很简单,我们对于str...

登录查看完整内容


登录后发布评论

1 条评论
RingoCrystal
2025年1月26日 16:08

如果同学们使用Java或者python,直接调用大数库即可

赞(0)