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