记录编号 419038 评测结果 AAAAAA
题目名称 增强的减法问题 最终得分 100
用户昵称 Gravatar烟雨 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-07-02 08:55:53 内存使用 0.33 MiB
显示代码纯文本
#include<fstream>
#include<cmath>
#include<cstring>
using namespace std;
ifstream cin("sub.in");
ofstream cout("sub.out");
char a[999],b[999];
int l1,l2,c[999],d[999],h[999],jw=0,q=0;
int main()
{
	cin>>a>>b;
	l1=strlen(a);
	l2=strlen(b);
	for(int i=0;i<l1/2;i++)swap(a[i],a[l1-i-1]);
	for(int i=0;i<l2/2;i++)swap(b[i],b[l2-i-1]);
	for(int i=0;i<l1;i++)c[i]=a[i]-'0';
	for(int i=0;i<l2;i++)d[i]=b[i]-'0';
	if(l1<l2)swap(l1,l2);
	for(int i=0;i<l1;i++)h[i]=c[i]-d[i];
	for(int i=l1;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==1)
	{
		for(int i=0;i<l1;i++)
		{
			if(h[i]<0)
			{
				h[i+1]=h[i+1]-1;
				h[i]=10+h[i];
			}
		}
		if(h[l1]!=0)cout<<h[l1];
		for(int i=l1-1;i>=0;i--)
		{
			if(h[i]!=0)q=1;
			if(q==1)cout<<h[i];
		}
	}
	if(jw==2)cout<<0;
	if(jw==0)
	{
		for(int i=0;i<l1;i++)h[i]=d[i]-c[i];
        cout<<"-";		
		for(int i=0;i<l1;i++)
		{
			if(h[i]<0)
			{
				h[i+1]=h[i+1]-1;
				h[i]=10+h[i];
			}
		}
		if(h[l1]!=0)cout<<h[l1];
		for(int i=l1-1;i>=0;i--)
		{
			if(h[i]!=0)q=1;
			if(q!=0)cout<<h[i];
		}
	}
	cin.close();
	cout.close();
	return 0;
}