【机试】高精度
高精度加法
一开始不理解为什么不直接x+y,额原来是考察的溢出问题。
思想:1.字符串和数字转换
2.数字用数组保存,倒叙
这个方法有学习到的就是add函数里的第二条if语句,牛的。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;vector<int> add(vector<int> &a,vector<int> &b)
{vector<int> c;if(a.size()>b.size()) return add(b,a);int t=0;for(int i=0; i<b.size(); i++){if(i<a.size()) t+=a[i];t+=b[i];c.push_back(t%10);t/=10;}if(t) c.push_back(t);return c;
}int main()
{vector<int> a,b;string x,y;cin>>x>>y;for(int i=x.size()-1; i>=0; i--)a.push_back(x[i]-'0');for(int i=y.size()-1; i>=0; i--)b.push_back(y[i]-'0');vector<int> c=add(a,b);for(int i=c.size()-1; i>=0; i--)cout<<c[i];return 0;
}