我正在开发一个接受2个参数$base
和$top
我希望恢复$base
小于$top
的力量
和
指数。
我期待的输出是$power=125
和$exp=3
。
我设法让$exp
更正确,但我的$power
即将出现为625,而我无法弄清楚为什么会超过$top
。
这是我的代码:
<?php
$base = 5;
$top = 130;
function topPower($base, $top) {
$exp = 0;
while($power<$top) {
$exp++;
$power = pow($base, $exp);
}
return array($power, $exp-1);
}
$results = topPower($base, $top);
print_r ($results);
?>
答案 0 :(得分:0)
将return array($power, $exp-1);
更改为return array( pow($base, $exp-1), $exp-1);
您将根据$power
而不是$exp
返回$exp-1
的值。
答案 1 :(得分:0)
您正在接收此值,因为125低于130,因此它会再次执行;)您应该始终检查下一个,如果超过 - 返回之前的功率。
答案 2 :(得分:0)
问题是5的3的幂是125,那就是“$ top”,这是130.所以你的while循环继续做另一个计算,这是5的4的幂,答案是625。
试
<?php
$base =5;
$top =130;
function topPower($base, $top) {
$exp = 0;
while($power<$top) {
$exp++;
$power = pow($base, $exp);
}
return array(pow($base, $exp-1), $exp-1);
}
$results = topPower($base, $top);
print_r ($results);
?>