概述
都知道, 计算机中存储整数是存在着位数限制的, 所以如果需要计算100位的数字相乘, 因为编程本身是不支持存储这么大数字的, 所以就需要自己实现, 当然了, 各个编程语言都有大数的工具包, 何必重复造轮子...那如何进行乘法运算呢? 因为用数组来存储数字, 那么数字的加法也要采用每一位进位的方式来进行, 所以下面为了方便说明算法的效率, 以一次个位数的运算视为一个运算单位....说明一下, 以下的计算步骤计数仅是我个人理解, 与网上其他文章所写不太一样. 仅代表个人观点....上小学知识:
个位数相乘, 一次运算
2位数乘1位数, 分解后共: 2次乘法和2位数的加法, 4次运算(乘10可看做移位操作)
3位数乘1位数, 分解后共: 3次乘法, 3位数的加法(不要看两个加号...问题
想必此算法的问题也很明显了, 为了每次都能将数字拆成左右两部分, 所以只能够计算位数是2的 n 次方的数字, 如果位数不足, 则需要在前边进行补0.