目录
一:高精度加法的意义
答:高精度加法适用于数位很多的数字的加法,比如两个数字a和b,len(a)= 100,说明a有一百位,显然int和long long int都无法存储这么大的数据,这时候这需要高精度加法来实现对两个数字的相加。
注:python和java内部有高精度加法的库函数,所以不需要实现,但是c++没有,需要手动实现
二:题目描述
三:算法思路
1.以字符串的形式读入a,b
2.用vector的两个数组A,B分别存储a,b从个位开始的数字,比如A【0】存储的是a的个位,A【1】存储a的十位,以此类推
3.用t来存储进位
4.如果最后t不是0,说明还要进1
四:多年无误代码模板
#include<iostream>
#include<vector>
using namespace std;
vector<int> add(vector<int>&A,vector<int>&B)
{
int t = 0;
vector<int>C;//存储答案
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(){
string a,b;
vector<int> A,B;
cin >>a >>b;
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 C = add(A,B);
for(int i = C.size()-1;i >= 0;i --)printf("%d",C[i]);
}
创作不易,建议点赞+收藏+关注,以免变成付费资源或者找不到宝贝文章了。
基础集训结束后将开展拔高系列