问题描述
在C/C++语言中,整型所能表示的范围一般为-2
31到2
31(大约21亿),即使long long型,一般也只能表示到-2
63到2
63。要想计算更加规模的数,就要用软件来扩展了,比如用数组或字符串来模拟更多规模的数及共运算。
现在输入两个整数,请输出它们的和。
现在输入两个整数,请输出它们的和。
输入格式
两行,每行一个整数,每个整数不超过1000位
输出格式
一行,两个整数的和。
样例输入
15464315464465465
482321654151
482321654151
样例输出
15464797786119616
数据规模和约定
每个整数不超过1000位
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char a[1001]={0};
char b[1001]={0};
char c[1001]={0};
int x,y;
gets(a);
gets(b);
x=strlen(a);
y=strlen(b);
int z=1000;
int t;
x--;
y--;
z--;
while(x!=-1||y!=-1)
{
if (x==-1)
t=b[y]-'0';
else if (y==-1)
t=a[x]-'0';
else
t=a[x]-'0'+b[y]-'0';
t+=c[z];
if(t>=10)
{
c[z]=t%10;
c[z-1]=t/10;
}
else
{
c[z]=t;
}
c[z]+=48;
if(x!=-1)
{
x--;
}
if(y!=-1)
y--;
z--;
}
if(c[z]==0)
z++;
else
c[z]+=48;
puts(c+z);
return 0;
}