高精度加法(注释版)
2025-11-02 17:51:39
发布于:江苏
#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
int c[N];
int main(){
// ------ 准备工作 --------
string a,b;
cin>>a>>b;
// 下标与位数对齐
// 让 a 表示位数更大的数字
if(a.size()<b.size()) swap(a,b);
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
while(b.size()<a.size()) b.push_back('0');
// --------- 模拟加法过程 -----------
int t=0; // 进位
int len=0; // 位数
for(int i=0;i<a.size();i++){
int x=a[i]-'0'+b[i]-'0'+t; // 当前位相加
c[++len]=x%10; // 当前位结果
t=x/10; // 更新进位
}
if(t) c[++len]=t; // 最高位有进位
// ---------- 输出结果 -----------
for(int i=len;i>=1;i--) cout<<c[i];
return 0;
}
这里空空如也






有帮助,赞一个