大数相乘
一、找规律 首先观察手工两数相乘的规律:如765*98,手工过程如下表所示
(1)两数相乘的最终结果的位数不超过两数的位数之和,取极端例子99*999=98901; (2)A中第i位与B中第j位相乘的结果放在第i+j位中,其中i,j都是从后往前数; (3)第i个数上的进位加到第i+1个数上; 二、实现步骤 1、合法性:判断A、B字符串首字符是否含有符号位“+”和“-”,若含有,从第二个字符开始计算; 2、翻转:将A、B字符串翻转并转换成数组; 3、构造结果集:构造结果数组result,大小为A、B除去符号位长度之和; 4、计算:遍历A,B数组,A中第i位与B中第j位相乘的结果放在结果集的第i+j位中; 5、进位:遍历结果集,如果结果集的数大于等于10,进行进位,进位规则为第i个数上的进位加到第i+1个数上; 6、过滤:若结果集中有前置0,则需要删除前置0。如果有负符号位加上符号位。 三、代码实现 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |