题目描述
给定两个正整数,计算它们的和。
样例
输入样例:
12
23
输出样例:
35
数组解法
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 1e6+10;
char num1[N], num2[N];//存放两个很大的整数,这里是以字符串的形式存储的
int n1[N], n2[N];//存放两个很大的整数字符串变成数字之后的值
int res[N] = { 0 };//存放结果
int main()
{
cin >> num1 >> num2;
int l1 = strlen(num1);
int l2 = strlen(num2);
for (int i = 0; i < l1; ++i)
{
n1[i] = (num1[l1 - 1 - i] - '0');//将字符转换成数字
}
for (int i = 0; i < l2; ++i)
{
n2[i] = (num2[l2 - 1 - i] - '0');//将字符转换成数字
}
int over = 0;//用于进位
for (int i = 0; i < N; ++i)//进行加法运算
{
int temp = n1[i] + n2[i] + over;
res[i] = temp % 10;
over = temp / 10;
}
int j=N-1;
for (j; j >= 0; --j)//去前置0
{
if (res[j])
{
break;
}
}
for (int k = j; k>=0; --k)//倒叙输出结果
{
cout << res[k];
}
return 0;
}