水仙花數是指一個數字等于其各個位數上的數字的冪次之和。
例如:153是一個水仙花數,因為1^3 + 5^3 + 3^3 = 153。換句話說,153的個位數的立方加上十位數的立方加上百位數的立方等于153。
現在,我們來編寫一個PHP程序,找出1000以內的所有水仙花數。
<?php
for($i = 100; $i <= 999; $i++){
$number = $i;
$sum = 0;
while($number != 0){
$digit = $number % 10;
$sum += $digit * $digit * $digit;
$number = $number / 10;
}
if($sum == $i){
echo $i . "是一個水仙花數。<br>";
}
}
?>
首先,我們使用for循環,從100到999遍歷所有的三位數。我們將當前的數保存在變量$number中,并初始化$sum為0。
然后,我們進入一個while循環,該循環將繼續執行直到$number變為0。在每次循環中,我們首先將$number除以10取余數,即得到$number的最后一位數。然后,我們將該位數的立方加到$sum中,并將$number除以10,以便繼續對下一位數進行同樣的操作。最終,當$number變為0時,我們將得到$sum的值。
接下來,我們將檢查$sum是否等于$i。如果是的話,說明$i是一個水仙花數,我們將其打印輸出。
運行這段PHP代碼,我們將得到以下輸出:
153是一個水仙花數。
370是一個水仙花數。
371是一個水仙花數。
407是一個水仙花數。
這些數都是在100到999范圍內的水仙花數。
這段代碼可以擴展到任意范圍的水仙花數,只需要修改for循環的起始值和結束值即可。比如,如果你想找出10000以內的水仙花數,只需要將for循環的起始值改為1000,結束值改為9999。
總結一下,通過以上的PHP代碼,我們成功地找出了1000以內的所有水仙花數。這個程序使用了循環和數值運算的基本知識,通過計算每個數的各位數的立方和,判斷是否等于原數,從而確定是否為水仙花數。通過修改循環的起始值和結束值,這個程序也可以找出其他范圍內的水仙花數。
上一篇00054oracle
下一篇cx oracle 編程