C程序中,计算过程中超过位数,但计算结果没超过

2024年11月17日 11:01
有1个网友回答
网友(1):

以字符串或整形数组存储除数和被除数。
计算时先计算最高位数字,比如a/b=c+x,其中a,b是大数,c是只有最高位有效的大数,x是余数,则确定c是很容易的,这样就可以计算出余a-bc的结果,其应该为a'=bx,这样a'/b=c'+x'可以得到新的所求商的第二位数。 如此可以求出所有位。

或者从低位起计算商的各位值---只适用于整除的情况:从除数和被除数的最低位开始,商的最低位是容易遍历的,比如如果除数的末位为4,被除数的末位为6则商的末位只能是4或9, 这样就可以遍历所有可能。一旦知道商的末位,则商的倒数第二位也是容易确定的,以此递推直到碰到无法进行下去为止---比如除数倒数两位为14,被除数为16时,如果还有其余选项则继续,否则即退出。