#include<iostream>
#include<vector>
using namespace std;
//引用的目的是提高效率,不加的话就会拷贝整个数据,加上就直接取了
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];
//将A,B的每一位进行加法运算,取余数
C.push_back(t%10);
//实现进位
t /= 10;
}
if(t) C.push_back(1);
return C;
}
int main()
{
//由于位数过大,所以用字符串来存输入的数据
string a,b;
vector<int> A,B;
cin>>a>>b;
//将A和B的每一位从小位向大位依次存到vector<int>容器中
for(int i=a.size()-1;i>=0;i--)A.push_back(a[i]-'0');
for(int i=b.size()-1;i>=0;i--)B.push_back(b[i]-'0');
//auto用于自动匹配数据类型
auto C = Add(A,B);
for(int i=C.size()-1;i>=0;i--)
{
printf("%d",C[i]);
}
return 0;
}
高精度加法
于 2024-02-29 21:06:47 首次发布