问题描述和思路:当运算的数字过大时,会溢出范围,导致最后的结果出错。
PHP种整型数的字长和平台有关,32 位平台下的最大值通常最大值是大约二十亿,64 位平台下的最大值通常是大约 9E18。在PHP中,当数字超出整型范围时,会自动将其转换为浮点型,浮点数的字长和平台相关,通常最大值是 1.8e308 并具有 14 位十进制数字的精度。在本题中,虽然范围是在浮点数内的,但是精度却不足了,所以需要用别的方法来实现大数的运算,在这里我们可以使用字符串来实现。
//用字符串的形式实现数的乘法运算,是我们所熟悉的垂直乘法运算
function multiply(string $a, string $b): string {
$lenA = strlen($a);
$lenB = strlen($b);
$result = '0';
for ($inxA = $lenA - 1; $inxA >= 0; --$inx