// //大整数加法
// //倒序,从左到右相加, 判断每一位数字,大于10则取余,并在下一位上加1,否则不变 运算结束,
// //判断最后一位若为0,从第一个非0开始倒序即为结果
//
// //两个大整数,求和输出结果
#include<iostream>
#include<string.h>
#define MAX 1000
using namespace std;
char a[MAX],b[MAX];
int a1[MAX],b1[MAX],c[MAX];
int main()
{
int k1=0,k2=0;
//for(int i=0;i<sizeof(a)/sizeof(int);i++)
// cin>>a[i];
// for(int j=0;j<sizeof(b)/sizeof(int);j++)
// cin>>b[j]; //这个可以判断int类型数组的长度
cin>>a;
cin>>b;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
for(int i=strlen(a)-1;i>=0;i--) //a,b数组取反,得到a1,b1
{
a1[k1++]=a[i]-'0';
}
for(int j=strlen(b)-1;j>=0;j--)
{
b1[k2++]=b[j]-'0'; //我们没有办法输入一串int类型数组,并能使系统判断什么时候输入结束
for(int i=0;i<MAX;i++) //反向取余进位
{
c[i]=a1[i]+b1[i]; //两个数组反向相加求得结果
if(c[i]>=10)
{
c[i+1]=c[i]/10+c[i+1];
c[i]=c[i]-10;
}
}
bool bStartOutput = false; //此变量用于跳过多余的0
for(int s=MAX-1;s>=0;s--) //找到第一个位置输出,反向输出即为所得结果第一位
{
if( bStartOutput)
cout<<c[s]; //如果多余的0已经都跳过,则输出
else if(c[s])
{
cout<<c[s];
bStartOutput = true; //碰到第一个非0的值,就说明多余的0已经都跳过
}
}
}
// //倒序,从左到右相加, 判断每一位数字,大于10则取余,并在下一位上加1,否则不变 运算结束,
// //判断最后一位若为0,从第一个非0开始倒序即为结果
//
// //两个大整数,求和输出结果
#include<iostream>
#include<string.h>
#define MAX 1000
using namespace std;
char a[MAX],b[MAX];
int a1[MAX],b1[MAX],c[MAX];
int main()
{
int k1=0,k2=0;
//for(int i=0;i<sizeof(a)/sizeof(int);i++)
// cin>>a[i];
// for(int j=0;j<sizeof(b)/sizeof(int);j++)
// cin>>b[j]; //这个可以判断int类型数组的长度
cin>>a;
cin>>b;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
for(int i=strlen(a)-1;i>=0;i--) //a,b数组取反,得到a1,b1
{
a1[k1++]=a[i]-'0';
}
for(int j=strlen(b)-1;j>=0;j--)
{
b1[k2++]=b[j]-'0'; //我们没有办法输入一串int类型数组,并能使系统判断什么时候输入结束
} //但是可以通过输入char类型,每一个数字即为一个符号,然后程序可以判断
//再将其转换为int类型数组
for(int i=0;i<MAX;i++) //反向取余进位
{
c[i]=a1[i]+b1[i]; //两个数组反向相加求得结果
if(c[i]>=10)
{
c[i+1]=c[i]/10+c[i+1];
c[i]=c[i]-10;
}
}
bool bStartOutput = false; //此变量用于跳过多余的0
for(int s=MAX-1;s>=0;s--) //找到第一个位置输出,反向输出即为所得结果第一位
{
if( bStartOutput)
cout<<c[s]; //如果多余的0已经都跳过,则输出
else if(c[s])
{
cout<<c[s];
bStartOutput = true; //碰到第一个非0的值,就说明多余的0已经都跳过
}
}
}