高精度减法,模拟常规立竖式计算,各位数对齐,从各位开始减,如果不够,向一位
借一作10。如下图所示:

高精度减法需要注意的问题:
对两个数做比较,根据前面介绍的高精度数据输出,如果两个数长度不同,则长度较长的数作为被减数
如果两个数长度相同,从高位开始到低位,每位数字相比较,数字较大的数一定大。
高精度减法算法实现如下:
#include <iostream>
#include <cstring>
using namespace std;
const int N =1001;
int aa[N],bb[N],cc[N]; //定义计算数和输出结果
void inputNum(string ss,int a[]); //输入需要计算的数保存到数组
void printArr(int a[]); //输出数组的元素
void jisuan(int a[],int b[],int c[]);
int main()
{
string s1 ="78345359834";
string s2 ="26245874563";
inputNum(s1,aa);
printArr(aa);
inputNum(s2,bb);
printArr(bb);
int temp =compare(aa,bb);
if (temp==0) cout<<"0"<<endl;
if (temp>0)
jisuan(aa,bb,cc);
else
{
cout<<"-";
jisuan(bb,aa,cc);
}
printArr(cc);
return 0;
}
int compare (int a

本文介绍了信息学奥赛中高精度减法的重要知识点,包括模拟传统竖式减法,注意位数对齐和借位规则。在进行高精度减法时,需先比较两个数的长度,确定被减数,并从高位开始逐位进行减法运算。
2300

被折叠的 条评论
为什么被折叠?



