记录编号 |
178837 |
评测结果 |
AAAAAA |
题目名称 |
增强的减法问题 |
最终得分 |
100 |
用户昵称 |
进击的小胖 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.006 s |
提交时间 |
2015-08-14 12:42:27 |
内存使用 |
0.24 MiB |
显示代码纯文本
#include<stdio.h>
#include<string.h>
int dz(char*a,int x[])
{
int len,i,j;
len=strlen(a);
for(i=1;i<=len;i++)
x[i]=a[len-i]-48;
x[0]=len;
}
int check(int *x,int *y)
{ int i,j;
if(x[0]!=y[0])return x[0]-y[0];
if(x[0]==y[0])
{
for(i=x[0];i>=1;i--)
if(x[i]!=y[i])
return x[i]-y[i];
}
return 0;
}
void sub(int *x,int *y,int *e)
{
int i,j;
for(i=1;i<=x[0];i++)
{
e[i]+=x[i]-y[i];
if(e[i]<0)
{e[i+1]--;e[i]=e[i]+10;}}
for(i=x[0];i>0;i--)
if(e[i]!=0)
{e[0]=i;break;}
if(e[0]==0)
e[0]=1;
}
int print(int e[])
{
int i,j;
for(i=e[0];i>0;i--)
if(e[i]!=0)
{e[0]=i;break;}
for(i=e[0];i>0;i--)
printf("%d",e[i]);
}
int main()
{
freopen("sub.in","r",stdin);
freopen("sub.out","w",stdout);
char stra[110]={0},strb[110]={0};
int i,j,w,x[110]={0},y[110]={0},e[110]={0};
gets(stra);
gets(strb);
dz(stra,x);
dz(strb,y);
w=check(x,y);
if(w>0)
{sub(x,y,e);print(e);}
if(w<0)
{sub(y,x,e);printf("-");print(e);}
if(w==0)
{printf("%d",0);return 0;}
return 0;
}