大整数减法
求两个大的正整数相减的差。
【输入】
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
【输出】
一行,即所求的差。
【输入样例】
9999999999999999999999999999999999999
9999999999999
【输出样例】
9999999999999999999999990000000000000
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
string s,s1;
int a[1001],b[1001],c[1001];
cin>>s>>s1;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int i,j,l1,l2;
l1=s.size();
l2=s1.size();
for(i=0;i<l1;i++)
{
a[l1-i]=s[i]-'0';
}
for(i=0;i<l2;i++)
{
b[l2-i]=s1[i]-'0';
}
int l;
l=max(l1,l2);
for(i=1;i<=l;i++)
{
c[i]+=a[i]-b[i];
if(c[i]<0)
{
c[i]+=10;
c[i+1]-=1;
}
}
int lc;
lc=l+1;
while(c[lc]==0&&lc>1)
{
lc--;
}
for(i=lc;i>=1;i--)
{
cout<<c[i];
}
return 0;
}