字符串相乘

仔细品这张图

 

class Solution {

    /**
     * @param String $num1
     * @param String $num2
     * @return String
     */
    
    function multiply($num1, $num2) {
        if ($num1 == "0" || $num2 == "0") {
            return "0";
        }

        $len1 = strlen($num1);
        $len2 = strlen($num2);

        $arr = [];
        for ($i=$len1-1; $i>=0;$i--) {
            for ($j=$len2-1; $j>=0; $j--) {
                $arr[$i+$j+1] += $num1[$i] * $num2[$j];
            }
        }

        $res = "";
        for ($i = $len1+$len2-1; $i>=0; $i--) {
            if ($arr[$i] > 9 ) {
                $arr[$i-1] += floor($arr[$i]/10);
                $arr[$i] = $arr[$i]%10;
            }
            $res = $arr[$i] . $res;
        }

        return (string)$res;
    }

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值