#include <bits/stdc++.h>
using namespace std;
const int N =1e6+10;
vector<int> add(vector<int> &A,vector<int> &B)
{
vector<int> C;
int t = 0; //表示上一位的进位
for(int i = 0; i < A.size() || i < B.size(); i++)
{
if(i < A.size())
t += A[i];
if(i < B.size())
t += B[i];
C.push_back(t % 10);
t /= 10;
}
if(t) //看看最高位是否有进位。如果有,则进一
C.push_back(1);
return C;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
string a, b;
vector<int> A, B;
cin >> a >> b; //假设a为 123456 ,b为123456
for(int i = a.size()-1; i >= 0; i--) A.push_back(a[i] - '0');//则A、B中存放的都是6 5 4 3 2 1
for(int i = b.size()-1; i >= 0; i--) B.push_back(b[i] - '0');//倒着输入方便取用
auto C = add(A, B);
for(int i = C.size()-1; i >= 0; i--)
cout << C[i];
return 0;
}
C++:高精度加法
最新推荐文章于 2024-02-20 15:16:09 发布