我正在尝试制作一个幂函数来计算 17^2147482999 的幂。我试过这段代码:
function ipow($a, $b) {
if ($b<0) {
echo "B must be a positive integer";
}
if ($b==0) return 1;
if ($a==0) return 0;
if ($b%2==0) {
return ipow($a*$a, $b/2);
} else if ($b%2==1) {
return $a*ipow($a*$a,$b/2);
}
return 0;
}
函数调用:
echo ipow($a, $b);
错误:
Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\spoj\LASTDIG.php on line 23
有没有其他方法可以计算如此大的值的功率?内置pow()
函数给出INF
输出。
更新
如果似乎不可能得到完整的答案,是否可以通过某种数学方法至少提取答案的最后 5-10 位数字?