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桁を少なくとも抽出することは可能ですか?