记录编号 453005 评测结果 AAAAAA
题目名称 增强的减法问题 最终得分 100
用户昵称 Gravatarサイタマ 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2017-09-20 19:49:33 内存使用 0.33 MiB
显示代码纯文本
#include<fstream>
#include<cmath>
#include<cstring>
using namespace std;
ifstream cin("sub.in");
ofstream cout("sub.out");
char a[1100],b[1100];	
int c[1100],d[1100],h[1100],n1,n2,i,j,jw;
int main()
{
    cin>>a>>b;
    n1=strlen(a);
    n2=strlen(b);
    for(i=0;i<n1/2;i++)swap(a[i],a[n1-1-i]);
    for(i=0;i<n2/2;i++)swap(b[i],b[n2-1-i]);
    for(i=0;i<n1;i++)c[i]=a[i]-'0';
    for(i=0;i<n2;i++)d[i]=b[i]-'0';
	if(n1>n2)swap(n1,n2);
	for(i=0;i<n2;i++)h[i]=c[i]-d[i];
	for(i=n2-1;i>=0;i--)
	{
		if(h[i]<0)
		{
			jw=1;
			break;
		}
		if(h[i]>0)
		{
			jw=0;
			break;
		}
		if(i==0&&h[i]==0)
			jw=2;
	}
	if(jw==2)cout<<0;
	if(jw!=2)
	{
		if(jw==0)
			for(i=0;i<n2;i++)h[i]=c[i]-d[i];
		if(jw==1)
			for(i=0;i<n2;i++)h[i]=d[i]-c[i];
	   for(i=0;i<n2;i++)
		{
			if(h[i]<0)
			{
				h[i+1]--;
				h[i]=10+h[i];
			}
		}
		for(i=n2;i>1;i--)if(h[i]!=0)break;
		if(jw==1)cout<<"-";
		for(j=i;j>=0;j--)cout<<h[j];
	}
	cin.close();
	cout.close();
	return 0;
}