记录编号 178837 评测结果 AAAAAA
题目名称 增强的减法问题 最终得分 100
用户昵称 Gravatar进击的小胖 是否通过 通过
代码语言 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;	
}