37 lines
812 B
C++
37 lines
812 B
C++
#include<cstdio>
|
||
#include<cstring>
|
||
#include<iostream>
|
||
using namespace std;
|
||
int a1[500],b1[500],c[500];
|
||
int main()
|
||
{
|
||
memset(a1,0,sizeof a1);
|
||
memset(b1,0,sizeof b1);
|
||
memset(c,0,sizeof c);
|
||
int lena,lenb,lenc,i;
|
||
char a[500],b[500];
|
||
cin>>a>>b; //以字符串输入a,b,不用输入可以直接用int;
|
||
lena=strlen(a);
|
||
lenb=strlen(b);
|
||
for(i=0;i<=lena-1;i++)a1[lena-i]=a[i]-48; //倒序写入a方便后面运算;
|
||
for(i=0;i<=lena-1;i++)b1[lenb-i]=b[i]-48; //倒序写入b;
|
||
|
||
|
||
|
||
//竖式加法
|
||
int x=0; //处理进位;
|
||
lenc=lena>lenb? lena:lenb; //用两个中最长的数决定运算次数;
|
||
for(i=1;i<=lenc;i++)
|
||
{
|
||
c[i]=a1[i]+b1[i]; //竖式加法;
|
||
x=c[i]/10;
|
||
c[i]%=10; //处理进位;
|
||
}
|
||
c[i+1]=x; //补上最高位;
|
||
lenc=lenc+1;
|
||
while(c[lenc]==0&&lenc>1)lenc--; //删除前导0;
|
||
for(i=lenc;i>=1;i--)
|
||
cout<<c[i];
|
||
}
|
||
|