题目描述
给出两个正整数A和B,计算A-B的值。保证A和B的位数不超过500位。
输入
读入两个用空格隔开的正整数
输出
输出A-B的值
样例输入 复制
3 12
样例输出 复制
-9
#include<bits/stdc++.h>
using namespace std;
int a[501],b[501],c[501],s;
int main()
{
string s1,s2;
cin>>s1>>s2;
if ((atoi(s1.c_str())<atoi(s2.c_str())&&s1.size()==s2.size())||s1.size()<s2.size())
{
swap(s1,s2);
s=1;
}
for(int i=0;i<s1.size();i++)
a[s1.size()-1-i]=s1[i]-'0';
for(int i=0;i<s2.size();i++)
b[s2.size()-i-1]=s2[i]-'0';
int ans=max(s1.size(),s2.size());
for(int i=0;i<ans;i++)
{
if(a[i]<b[i])
{
a[i+1]--;
a[i]=a[i]+10;
}
c[i]=a[i]-b[i];
}
while(c[ans-1]==0&&ans>1)
ans--;
if (s==1)
cout<<"-";
for (int i=0;i<ans;i++)
cout<<c[ans-1-i];
return 0;
}