高精度加法运算
原题链接:70056.笔记2026-01-26 11:14:49
发布于:广东
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string a, b, c;
cin >> a >> b;
reverse(a.begin(),a.end());//反转
reverse(b.begin(),b.end());//反转
int len = max(a.size(),b.size()) + 1;//取最高
int al = a.size(),bl = b.size(); //保存a,b最高位
for(int i=1;i<=len-al;i++) a+='0';//补零
for(int i=1;i<=len-bl;i++) b+='0';
for(int i=1;i<=len;i++) c+='0';
int k=0;//存储进谁
for(int i=0;i<len;i++){
int t = (a[i]-'0' + b[i]-'0') +k;//进位
c[i] = char(t%10+'0');//取个位
k = t/10;//取十位
}
while(c[len-1]=='0' && len >1) len--;
for(int i=len-1;i>=0;i--) cout << c[i];//逆序输出
return 0;
}
这里空空如也










有帮助,赞一个