记录编号 103314 评测结果 AAAAAA
题目名称 增强的减法问题 最终得分 100
用户昵称 GravatarRACHE 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2014-05-26 20:18:55 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<fstream>
#include<string>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    string s1,s2;
    int i;
    int l1,l2,m,n,l=1,j;
    int max;
    int a[1000],b[1000],re[1000];
    ifstream fin("sub.in");
    ofstream fout("sub.out");
    fin>>s1>>s2;
    for(i=0;i<1000;i++)
    {
		a[i]=0;
		b[i]=0;
		re[i]=0;
    }
    l1=s1.size();
    l2=s2.size();
    m=l1;
    n=l2;
    if(l1>l2)
    {
		max=l1;
    }
    else
    {
		max=l2;
    }
	for(i=max;i>0;i--)
	{
		if(n>0)
		{
			a[i]=s2[n-1]-'0';
			n--;
		}
		if(m>0)
		{
			b[i]=s1[m-1]-'0';
			m--;
		}
    }
	if(l1>l2)
	{
    for(i=max;i>0;i--)
    {	
		re[i]=re[i]+b[i]-a[i];
		if(re[i]<0)
		{
			re[i]=re[i]+10;
			re[i-1]--;
		}
    }
	}
    if(l1<l2)
    {
		fout<<"-";
    for(i=max;i>0;i--)
    {	
		re[i]=re[i]+a[i]-b[i];
		if(re[i]<0)
		{
			re[i]=re[i]+10;
			re[i-1]--;
		}
		
    }
	}
	if(l1==l2)
	{
		for(i=1;i<max;i++)
		{
			if(b[i]>a[i])
			{
				for(j=max;j>0;j--)
				{	
					re[j]=re[j]+b[j]-a[j];
					if(re[j]<0)
					{
						re[j]=re[j]+10;
						re[j-1]--;
					}
				}
				break;
			}
			if(a[i]>b[i])
			{
				fout<<"-";
				for(j=max;j>0;j--)
				{	
					re[j]=re[j]+a[j]-b[j];
					if(re[j]<0)
					{
						re[j]=re[j]+10;
						re[j-1]--;
					}
				}
				break;
			}
		}
	}
if(re[1]==0)
{
for(i=1;i<max;i++)
	{
	if(re[i]==0)
		{
			l++;
		}
		if(re[i+1]!=0)
			break;
	}
	}
    for(i=l;i<max+1;i++)
    {
		fout<<re[i];
    }
    return 0;
}