大数【加减乘除】

加法:字符型数组输入,然后转化反序存储到整型数组中,相加过程注意进位变量在结束时判断是否仍需要进位,同时注意特判0+0即可。

减法:和加法类似,把进位变量改为借位变量即可,不过需要使用较大数减去较小数。

乘法:乘法应该是最简单的吧,同样字符型数组输入,然后反序存储进整型数组中,利用错位相乘相加可得:sum[i+j]=a[i]*b[j]。

 大数除法是四则运算里面最难的一种。不同于一般的模拟,除法操作不是模仿手工除法,而是利用减法操作来实现的。其基本思想是反复做除法,看从被除数里面最多能减去多少个除数,商就是多少。逐个减显然太慢,要判断一次最多能减少多少个整数(除数)的10的n次方。

以7546除以23为例:

    先用7546减去23的100倍,即减去2300,可以减3次,余下646,此时商就是300 (300=100*3);

    然后646减去23的10倍,即减去230,可以减2次,余下186,此时商就是320 (320=300+10*2);

    然后186减去23,可以减8次,余下2,此时商就是328 (328=320+1*8);

    因为2除以23的结果小于1,而我们又不用计算小数点位,所以不必再继续算下去了。

【借鉴自https://www.cnblogs.com/wuqianling/p/5387099.html

猜你喜欢

转载自www.cnblogs.com/MekakuCityActor/p/8946176.html