基础算法 高精度运算 #大数加法
文章目录
- 题目链接
- 题目解读
- 完整代码
- 参考
题目链接
题目解读
题目描述
输入两个正整数a,b,输出a+b的值。
输入格式
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
一行,a+b的值。
完整代码
#include<bits/stdc++.h>
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算法平台
🌻编写本篇文章目的是笔者想以输出的形式进行学习,顺便记录学习点滴🌻
🌹 如果本篇文章对你有帮助的话那就点个赞吧👍🌹
😇 本篇文章可能存在多处不足,如有修改意见,可以私信或者评论我哦 😇