//这应该就对了。。
#include<stdio.h>
#include<string.h>
#define MAX(a,b) (a>b?a:b)
char a[10010];
char aa[10010];
char b[10010];
char bb[10010];
int sum[100010];//存放加法的和
int a1[10010];//存放字符串a[],中所代表的数字
int b1[10010];//存放字符串b[],中所代表的数字
int main()
{
int i,j,l,l1,l2;
char c;
while(scanf("%s",a)!=EOF)
{
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(sum,0,sizeof(sum));
l1=strlen(a);
j=0;
for(i=l1-1;i>=0;i--)
aa[j++]=a[i];
getchar();
scanf("%c",&c);
scanf("%s",b);
l2=strlen(b);
j=0;
for(i=l2-1;i>=0;i--)
bb[j++]=b[i];
l=MAX(l1,l2);
if(c=='+')// 当是加号时,执行加法。
{
if(l1>=l2)
{
j=0;
for(i=0;i<l2;i++)
{
sum[j]+=((aa[i]-'0')+(bb[i]-'0'));
if(sum[j]>=10)
{
sum[j+1]+=sum[j]/10;
sum[j]%=10;
}
j++;
}
for(i=l2;i<l1;i++)
sum[j++]=aa[i]-'0';
}
else
{
j=0;
for(i=0;i<l1;i++)
{
sum[j]+=((aa[i]-'0')+(bb[i]-'0'));
if(sum[j]>=10)
{
sum[j+1]+=sum[j]/10;
sum[j]%=10;
}
j++;
}
for(i=l1;i<l2;i++)
sum[j++]=bb[i]-'0';
}
if(!sum[l])
l--;
for(i=l;i>=0;i--)
printf("%d",sum[i]);
printf("\n");
}
else//否则执行减法。
{
for(i=0;i<l1;i++)
a1[i]=a[l1-i-1]-'0';
for(i=0;i<l2;i++)
b1[i]=b[l2-i-1]-'0';
if(l1>l2||(l1==l2&&strcmp(a,b)>0))
{
for(i=0;i<l1;i++)
{
if(a1[i]<b1[i])
{
a1[i+1]--;
a1[i]+=10;
}
a1[i]=a1[i]-b1[i];
}
for(i=l-1;i>=0;i--)
printf("%d",a1[i]);
printf("\n");
}
else
{
printf("-");
for(i=0;i<l2;i++)
{
if(b1[i]<a1[i])
{
b1[i+1]--;
b1[i]+=10;
}
b1[i]=b1[i]-a1[i];
}
for(i=l-1;i>=0;i--)
printf("%d",b1[i]);
printf("\n");
}
}
}
return 0;
}
/*
测试数据
样例输入
1、 12345 + 12345
2、 12345 + 35
3、 35 + 12345
4、 12345 - 2345
5、 2345 - 12345
6、 12 - 123
7、 123- 12
样例输出
1、 24690
2、 12380
3、 12380
4、 10000
5、 -10000
6、 -111
7、 111
*/