蓝桥杯--高精度加法

http://47.104.209.207/problem/old1071

直接用模板就好,反过来方便些。

 1 #include<iostream>
 2 #include<queue>
 3 #include<vector>
 4 #include<algorithm>
 5 using namespace std;
 6 vector<int> add(vector<int>&a,vector<int>& b){
 7     vector<int> res;
 8     int over=0;
 9     for(int i=0;i<a.size()||i<b.size();i++){
10         int tmp=over;
11         if(i<a.size()) tmp+=a[i];
12         if(i<b.size()) tmp+=b[i];
13         res.push_back(tmp%10);
14         over=tmp/10;
15     }
16     if(over){
17         res.push_back(over);
18     }
19     return res;
20 }
21 int main(){
22     string a,b;
23     cin>>a>>b;
24     vector<int> c,d;
25     for(int i=a.size()-1;i>=0;i--){
26         c.push_back(a[i]-'0');
27     }
28     for(int i=b.size()-1;i>=0;i--){
29         d.push_back(b[i]-'0');
30     }
31     vector<int> res=add(c,d);
32     reverse(res.begin(),res.end());
33     for(int i=0;i<res.size();i++){
34         cout<<res[i];
35     }
36     return 0;
37 }
原文地址:https://www.cnblogs.com/greenofyu/p/14438640.html