您的位置:首页 > 其它

大整数减法

2018-01-13 16:02 176 查看
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <map>
#include <set>
#include <vector>
#include <queue>
#define inf 0x3f3f3f3f
#define eps 1e-8
#define pi 3.1415
typedef long long ll;
using namespace std;
int x[300],y[300];
int main()
{
string a,b;
cin>>a>>b;//读入两个大整数,保证a>b
reverse(a.begin(),a.end());//反转a,b便于计算
reverse(b.begin(),b.end());
int n1=a.size();
int n2=b.size();
for(int i=0; i<n1; i++) x[i]=a[i]-'0';//存储为int数组便于书写
for(int i=0; i<n2; i++) y[i]=b[i]-'0';
for(int i=0; i<n1; i++)//模拟竖式减法
{
x[i]-=y[i];
if(x[i]<0)
{
x[i]+=10;
x[i+1]--;
}
}
for(int i=n1-1; i>=0; i--)
{
if(x[i]!=0||i==0)//从第一位不是0的数字开始,i==0保证输入两个0时也有结果
{
for(int j=i; j>=0; j--)
{
printf("%d",x[j]);
}
break;
}
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: