本文主要是介绍【c++】大整数加法模板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
大整数加法,采用字符串存储数据,只需模拟手工运算即可,需要注意的是两个加数得长度对其,不然不利于计算。不足补0。
样例输入:
1+2
33+5
样例输出:
3
38
代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
void solve(string a,string b){//加法处理 int mmax=max(a.size(),b.size());//最大长度 while(a.size()<mmax) a="0"+a;//最大对齐 while(b.size()<mmax) b="0"+b;//最大对齐 string c="";//结果 int jin=0;//进位 for(int i=mmax-1;i>=0;i--){int wei=a[i]+b[i]-2*'0'+jin;//对应位加法结果 jin=wei/10;//进位值 wei%=10;//保留值 c=char('0'+wei)+c;}if(jin!=0) c=char('0'+jin)+c;//如果最终还需要进位 cout<<c<<endl;
}
int main(){string a,b;while(cin>>a){b="";int f=0;for(f;a[f]!='+';f++);//分割字符串 for(int i=1;f+i<a.size();i++){b+=a[f+i];}a.erase(a.begin()+f,a.end());//删除a中+以后的部分 solve(a,b);}return 0;
}
这篇关于【c++】大整数加法模板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!