<?php/** * 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 * Class Solution */class Solution { /** * 输入: num1 = "123", num2 = "456" * 输出: "56088" * * 1 2 3 * 4 5 6 * ----- * * * @param String $num1 * @param String $num2 * @return String */ function multiply($num1, $num2) { if ($num1 == '0' || $num2 == '0') { return '0'; } $tmpMul = []; for ($i = strlen($num1) - 1; $i >= 0; $i--) { for ($j = strlen($num2) - 1; $j >= 0; $j--) { $tmpSum = $num1[$i] * $num2[$j]; $tmpMul[$i + $j + 1] = isset($tmpMul[$i + $j + 1]) ? $tmpMul[$i + $j + 1] + $tmpSum : $tmpSum; } } $tmpMul[1] = 9; $ret = ''; for ($i = count($tmpMul); $i > 0; $i--) { $div = floor($tmpMul[$i] / 10); $mod = $tmpMul[$i] % 10; if (isset($tmpMul[$i - 1])) { $tmpMul[$i - 1] = $tmpMul[$i - 1] + $div; } else { $mod = $tmpMul[$i]; } $ret = $mod . $ret; } return $ret; }}$num1 = '123';$num2 = '456';$cls = new Solution();$ret = $cls->multiply($num1, $num2);echo "\n" . $ret;