记录编号 |
91604 |
评测结果 |
AAAAAA |
题目名称 |
增强的减法问题 |
最终得分 |
100 |
用户昵称 |
Letter zZZz |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.002 s |
提交时间 |
2014-03-15 20:42:56 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream fin ("sub.in");
ofstream fout ("sub.out");
string x,y;
int l1,l2;
void swap2(int* l1,int* l2)
{
int s2=*l1;
*l1=*l2;
*l2=s2;
}
void swap1(string* x,string* y)
{
string s1=*x;
*x=*y;
*y=s1;
}
bool bidaxiao(string x,string y,int l1,int l2)
{
bool p=false;
if (l1<l2)
p=true;
if (l1==l2)
if (x<y)p=true;
return p;
}
int main()
{
fin>>x>>y;
if (x==y)
{
fout<<'0';
return 0;
}
l1=strlen(x.c_str());
l2=strlen(y.c_str());
int l=(l1>l2?l1:l2);
if (bidaxiao(x,y,l1,l2)==true)
{
swap1(&x,&y);
swap2(&l1,&l2);
fout<<"-";
}
int a[110]={0},b[110]={0},c[110]={0};
for (int i=1;i<=l1;i++)
a[i]=x[l1-i]-'0';
for (int i=1;i<=l2;i++)
b[i]=y[l2-i]-'0';
for (int i=1;i<=l;i++)
{
if (a[i]-b[i]>=0)c[i]=a[i]-b[i];
else
{
c[i]=a[i]-b[i]+10;
a[i+1]--;
}
}
while (l>0&&c[l]==0)
if (c[l]==0)l--;
for (int i=l;i>0;i--)
fout<<c[i];
fout<<endl;
return 0;
}