关于请教哥哥姐姐,高精度除法如何实现???拜托了!!!的问题
pascal语言在八十年代末九十年代初也曾热过,目前恐怕已被大多数人淡忘了,所以这里也许难有人为你提供用pascal语言实现高精度除法实例,但无论用何种具体语言,其原则不变,那就是对高精度计算首先要处理好的问题:数据的接收与存储(在计算机上进行高精度计算,首先输入应该精确使计算机精确地接收和存储数据)、计算结果位数的确定(如两数之和位数取位数大的数的位数加1,乘积的位数最大为两个因子的位数之和。
。。等)、进位处理和借位处理、商和余数的求法;
例如求任意A除B的精确值运算:
1、A、B均可使用数值变量来接收与存储(A、B均为计算机允许显示的精度)。
2、A除B的精确值有两种情况:
其一A能被B整除,没有余数。
其二A不能被B整除,须对余数进行处理。
所以在做除法运算时(不变量–除数,变量–被除数、商和余数),每次都是用被除数减去商与除数的积,如果所得余数不为零,则将其扩大10倍再次作为被除数,继续试除,直至余数为零或达到要求的精确度为止。最后,必须对精确度的后一位求商,然后判断其值而四舍五入得出最后的结果。
至于具体利用pascal实现处理算法,因为和pascal没缘,所以只能建议你找些资料看看(只是不知道还能否在书店找到)
注:可设一位置变量i,当A[1。。n]>B[1。。n]时,B[1。。n]左移→B[0。。n]即i:=i+1,则B[1。
。n]扩大10倍。