Я пытаюсь сделать степенную функцию для вычисления мощности 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
.
UPDATE
Если кажется невозможным получить полный ответ, возможно ли извлечь хотя бы последние 5-10 цифр ответа некоторым математическим подходом?