有的时候我们可能会遇到要求取K进制高精度的加法,那这该怎么进行计算呢?其实方法很简单,只用把之前10进制的模板里面的10改成k即可。
注意此时传入到add()方法里的vector,在传到方法里之前要做好相关的转换,比如以16进制来说,可能读入的时候读入了’A’~’F’,那么得先转换成10~15 ~~~
代码
vector<int> add(vector<int> &a,vector<int> &b){
int t=0;
if(a.size()<b.size()) add(b,a);
vector<int> c;
for(int i=a.size()-1;i>=0;i--){
t+=a[i];
if(i<b.size()) t+=b[i];
c.push_back(t%k);
t/=k;
}
if(t>0) c.push_back(t);
return c;
}