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