高精度整数加法
描述
输入两个用字符串 str 表示的整数,求它们所表示的数之和。
数据范围: 1 \le len(str) \le 10000 \1≤len(str)≤10000
输入描述:
输入两个字符串。保证字符串只含有'0'~'9'字符
输出描述:
输出求和后的结果
示例1
输入:
9876543210
1234567890
输出:
11111111100
#include<iostream>
#include<vector>//需要用到容器
using namespace std;
vector<int> my_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=t/10;//小二收盘子,并且记帐目
}
if(t) c.push_back(1);//付总账
return c;//把钱给老板
}
int main()
{
string a,b;//定义两个字符串
cin>>a>>b;//输入两个字符串
vector<int> 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=my_add(A,B);//使用函数
for(int i=c.size()-1;i>=0;i--)printf("%d",c[i]);//倒着输出
return 0;
}