题目
给定两个正整数,计算它们的差,计算结果可能为负数。
输入格式
共两行,每行包含一个整数。
输出格式
共一行,包含所求的差。
数据范围
1≤整数长度≤105
输入样例:
32
11
输出样例:
21
代码
#include<iostream>
#include<cstring>
using namespace std;
int sc[123450];int sa[123456];int sb[123456];
int main()
{
string a,b;int k=0;int flag=0;
cin>>a>>b;
int lena=a.length();int lenb=b.length();
for(int i=0;i<lena;i++) sa[i]=a[lena-i-1]-'0';
for(int i=0;i<lenb;i++) sb[i]=b[lenb-i-1]-'0';
if(lena<lenb||(lena==lenb&&a<b))
{
flag=-1;
swap(lena,lenb);
swap(sa,sb);
}
int l=0;
while(l<lena||l<lenb)
{
if((sa[l]-sb[l])<0)
{
sa[l+1]--;
sa[l]+=10;
}
sc[k++]=sa[l]-sb[l];
l++;
}
while(sc[l]==0&&l>0)l--;
if(flag==-1) cout<<"-";
for(int i=l;i>=0;i--) cout<<sc[i];
return 0;
}