📄 1886900_ac_0ms_104k.c
字号:
# include <stdio.h>
# include <string.h>
int lenl, lens;
char l[20000], s[20000], tmp[20000];
void add()
{
int i;
char t, y;
y = '0';
for(i = 0; i <= lenl; i++)
{
if(i==lenl)
if(y=='0') break;
else {l[i] = '1';l[i+1] = '\0';break;}
if(i >= lens) s[i] = '0';
t = l[i]+s[i]+y-'0'-'0';
if(t > '9')
{
y = '1';
t -= 10;
}
else y = '0';
l[i] = t;
}
}
void minus()
{
int i;
char t, y;
y = '0';
for(i = 0; i < lenl; i++)
{
if(i >= lens) s[i] = '0';
t = l[i]-s[i]-y+'0'+'0';
if(t < '0')
{
y = '1';
t += 10;
}
else y = '0';
l[i] = t;
}
}
int main()
{
int i, T, marks, markl, mark;
scanf("%d",&T);
while(T--)
{
scanf("%s%s",s,l);
if(s[0]=='-')
{
marks = -1;
if(l[0]=='+')
{
mark=strlen(l)-strlen(s);
if(mark==0)
mark=strcmp(&l[1],&s[1]);
}
else if(l[0]!='-')
{
mark=strlen(l)-strlen(s)+1;
if(mark==0)
mark=strcmp(l,&s[1]);
}
}
else
marks = 1;
if(l[0]=='-')
{
markl = -1;
if(s[0]=='+')
{
mark=strlen(s)-strlen(l);
if(mark==0)
mark=strcmp(&s[1],&l[1]);
}
else if(s[0]!='-')
{
mark=strlen(s)-strlen(l)+1;
if(mark==0)
mark=strcmp(s,&l[1]);
}
}
else
markl = 1;
if(s[0] < '0')
strcpy(s,&s[1]);
if(l[0] < '0')
strcpy(l,&l[1]);
if(strlen(s) > strlen(l)||(strlen(s)==strlen(l)&&strcmp(s,l)>0))
{
strcpy(tmp,s);
strcpy(s,l);
strcpy(l,tmp);
}
lenl = strlen(l);
lens = strlen(s);
for(i = 0; i < lenl/2; i++)
{
tmp[0] = l[i];
l[i] = l[lenl-i-1];
l[lenl-i-1] = tmp[0];
}
for(i = 0; i < lens/2; i++)
{
tmp[0] = s[i];
s[i] = s[lens-i-1];
s[lens-i-1] = tmp[0];
}
if(marks*markl==1)
{
add();
if(marks==-1) printf("-");
for(i = strlen(l)-1; i >= 0; i--)
if(l[i]!='0')
{
l[i+1]='\0';
break;
}
for(i = strlen(l)-1; i >= 0; i--)
printf("%c",l[i]);
printf("\n");
}
else
{
minus();
if(mark < 0) printf("-");
if(mark== 0) {printf("0\n");goto end;}
for(i = strlen(l)-1; i >= 0; i--)
if(l[i]!='0')
{
l[i+1]='\0';
break;
}
for(i = strlen(l)-1; i >= 0; i--)
printf("%c",l[i]);
printf("\n");
}
end : ;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -