鑑於Armstrong Numbers definition,功能性解決方案更簡潔一點更清楚我
function isArmstrongNumber($number) {
$digits=str_split($number); // create an array containing the digit into the
$result = array_sum(
array_map(
function($x){return $x*$x*$x;},
$digit
)
);
return $number == $result;
}
事實證明,以前的定義是有效的三個數字。 一個general definition導致了 略有不同的功能:
function isArmstrongNumber($number) {
$digits=str_split($number); // create an array containing the single digits
$power= count($digits); // the power every digit has to be raised to
$result = array_sum(
array_map('pow', $digits, array_fill(0,$power,$power))
);
return $number == $result;
}
您可以使用代碼以這樣的方式
$candidate = 153;
if(isArmstrongNumber($candidate) {
/* armstrong number */
echo $candidate, ' is an Armstrong number.';
} else {
/* not armstrong number */
echo $candidate, ' is not an Armstrong number.';
}
PHP沒有使用整數結果實現整數除法,而忽略了C的提示。 '$ n = $ n/10;'產生一個浮點值,並且從那一點起代碼就不存在了。 – axiac 2018-02-08 10:23:46