【题目描述】
求两个大的正整数相减的差。
【输入】
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
【输出】
一行,即所求的差。
【输入样例】
9999999999999999999999999999999999999
9999999999999
【输出样例】
9999999999999999999999990000000000000
纯粹的高精度减法题
代码如下
#include<bits/stdc++.h>
using namespace std;
//高精度减法模版
int a[200],b[200],c[210];
int main(){
string s1,s2;
cin>>s1>>s2;
int k=0;
for(int i=s1.size()-1;i>=0;i--) a[k++]=s1[i]-'0';
k=0;
for(int i=s2.size()-1;i>=0;i--) b[k++]=s2[i]-'0';
int len=max(s1.size(),s2.size());
for(int i=0;i<len;i++) c[i]=a[i]-b[i];
for(int i=0;i<200;i++)
{
if(c[i]<0)
{
c[i+1]--;
c[i]+=10;
}
}
int flag=0;
for(int i=200;i>0;i--)
{
if(c[i]!=0) flag=1;
if(flag) cout<<c[i];
}
cout<<c[0];
return 0;
}
此代码仅供参考,请勿纯抄