跳到主要内容

高精度减法

定义

高精度减法是指长度很大的值相减,这里写的是两个长度很大的值相减。这里要注意的是,相减结果可能会产生前导零,这是需要去掉的。

实现

题目链接
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
//输入两个数
string A, B;
cin >> A >> B;
//倒序存储两个数
vector<int> num1, num2;
for(int i = A.size() - 1; i >= 0; i--) num1.push_back(A[i] - '0');
for(int i = B.size() - 1; i >= 0; i--) num2.push_back(B[i] - '0');

//比较两个数大小,若是a<b,就先输出负号,然后大减小
vector<int> result;
if(cmp(num1, num2)) result = sub(num1, num2);
else
{
result = sub(num2, num1);
printf("-");
}

//输出结果
for(int i = result.size() - 1; i >= 0; i--)
{
printf("%d", result[i]);
}

return 0;
}