高精度加法
本题中有一种很经典的解决多个长度不一的数组要进行统一处理的操作
一般的想法是要判断两个数组的长度,然后以最长的或者最短的为标准
这道题目中使用两次if和一个额外开出来的数组便解决这个问题
还有一个要注意的点就是,最后加完的时候要注意判断进位
C++ 代码
#include<iostream>
#include <vector>
using namespace std;
vector<int> myadd(vector<int>& A,vector<int>& B){
vector<int> res;
int e = 0;
int i = 0 , j = 0;
while(i < A.size() || j < B.size()){
int t = 0;
if(i < A.size()){
t += A[i++];
}
if( j < B.size() ){
t += B[j++];
}
t += e;
res.push_back(t % 10);
e = t / 10;
}
if(e) res.push_back(1);
return res;
}
int main(){
string a,b;
cin>>a>>b;
vector<int> A,B;
for(int i = a.size() - 1;i >= 0; --i) A.push_back(a[i] - '0');
for(int i = b.size() - 1;i >= 0; --i) B.push_back(b[i] - '0');
vector<int> res;
res = myadd(A,B);
for(int i = res.size() - 1;i >= 0;--i)
cout<<res[i];
return 0;
}