模拟&高精度(采用数组存数值的技术)
小端序存储:好处是不需要对其,天然的就可以运算
通过len - i将字符串映射从1开始
字符串为[0, size-1), 最大为size-1, 利用这个性质可以len - i,i(0, size - 1)不断增加为(size, size - 1, ····· 2, 1)
两种方式
i=0~len-1,alen-i = Ai错位存
i=len-1~0,alen-i = Ai顺位逆序存

构造竖式+

涉及到进位,若len+1有值,则len++
构造竖式-

因为涉及到借位,所以最后len可能会减少,要找寻最大len(非0位置)
构造竖式*

不考虑进位,则ai*bj体现在i+j-1位上,呈现阶梯状
对于+=是因为阶梯会存在多次,可能是一个累加的值
做法 = 处理字符串 + 构造中间产物i*j-1 + 处理进位 + 排除前导零
其中,乘积位数不超过两数位之和,所以处理进位实际上处理到A+B长度之和即可,然后再对A+B长度和做去除前导零操作即可
对于数组空间(由于中间产物存在阶梯形,所以若x*y大概有x+y-1位),由此推得空间需要多大
对于时间: 由于存在nm,且C++1e8/1s,最多<10000 10000
构造/
为什么不用判断sum > 除数b?: 即当sum < b时,c[i] = sum / b一定为0,而余数sum%b一定为sum本身
浙公网安备 33010602011771号