比赛 |
防止浮躁的小练习v0.4 |
评测结果 |
AAAAAA |
题目名称 |
增强的减法问题 |
最终得分 |
100 |
用户昵称 |
ZWOI_ヤシニャ |
运行时间 |
0.001 s |
代码语言 |
C |
内存使用 |
0.29 MiB |
提交时间 |
2016-10-13 21:22:53 |
显示代码纯文本
#include<stdio.h>
#include<math.h>
#include<string.h>
char a[102],b[102];
int c[102],d[102];
int compare(int x)
{
int i;
for (i=x;i>=1;i--)
{
if (c[i]>d[i]) return 0;
if (c[i]<d[i]) return 1;
}
return 2;
}
int main()
{
int i=0,j=0,x,y;
freopen("sub.in","r",stdin);
freopen("sub.out","w",stdout);
gets(a);gets(b);
i=strlen(a); j=strlen(b);
for (x=1;x<=i;x++) c[x]=a[i-x]-48;
for (x=1;x<=j;x++) d[x]=b[j-x]-48;
if (i>j)
{
for (x=1;x<=i;x++)
{
if(c[x]>=d[x])
{
c[x]=c[x]-d[x];
}
else
{
c[x]=c[x]+10-d[x];
c[x+1]=c[x+1]-1;
}
}
}
if (i==j)
{
y=compare(i);
if (y==0)
{
for (x=1;x<=i;x++)
{
if(c[x]>=d[x])
{
c[x]=c[x]-d[x];
}
else
{
c[x]=c[x]+10-d[x];
c[x+1]=c[x+1]-1;
}
}
}
if (y==1)
{
printf("-");
for (x=1;x<=i;x++)
{
if(d[x]>=c[x])
{
c[x]=d[x]-c[x];
}
else
{
c[x]=c[x]+10-d[x];
d[x+1]=d[x+1]-1;
}
}
}
if (y==2)
{
printf("0");
return 0;
}
}
if (i<j)
{
i=j;
printf("-");
for (x=1;x<=i;x++)
{
if(d[x]>=c[x])
{
c[x]=d[x]-c[x];
}
else
{
c[x]=d[x]+10-c[x];
d[x+1]=d[x+1]-1;
}
}
}
while(c[i]==0) i--;
for (x=i;x>=1;x--) printf("%d",c[x]);
return 0;
}