基础算法 高精度运算 #大数加法

文章目录

  • 题目链接
  • 题目解读
  • 完整代码
  • 参考


题目链接

题目解读

题目描述
输入两个正整数a,b,输出a+b的值。
输入格式
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
一行,a+b的值。

完整代码

#include

using namespace std;

vector<int> add(vector<int> a,vector<int> b){
    vector<int> res;
    int t=0;
    int size=max(a.size(),b.size());
    
    for(int i=0; i<size; i++){
        if(i<a.size())t+=a[i];
        if(i<b.size())t+=b[i];
        res.push_back(t%10);
        t/=10;
    }
    if(t)res.push_back(1);
    return res;
}

int main(){
    string s1,s2;
    cin>>s1>>s2;
    //倒着存储,方便待会正着运算
    vector<int> a,b;
    for(int i=s1.size()-1; i>=0; i--)a.push_back(s1[i]-'0');
    for(int i=s2.size()-1; i>=0; i--)b.push_back(s2[i]-'0');

    vector<int> c=add(a,b);
    //最后要倒叙遍历输出答案
    for(int i=c.size()-1; i>=0; i--)cout<<c[i];

    return 0;
}

参考

acwing算法平台


编写本篇文章目的是笔者想以输出的形式进行学习,顺便记录学习点滴

如果本篇文章对你有帮助的话那就点个赞吧

本篇文章可能存在多处不足,如有修改意见,可以私信或者评论我哦


基础算法 高精度运算 #大数加法_第1张图片

你可能感兴趣的:(基础算法,算法,高精度加法)