php 输出任意一个数,php 生成任意范围的水仙花数
水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
生成所有三位數的水仙花數,并輸出:
方法一:for?($i?=?100;?$i?<=?999;?$i++)?{
//獲取個位十位百位?的數?方法一
$a?=?$i?%?10;//個位數
$b?=?($i?-?$a)?/?10?%?10;//十位數
$c?=?(int)($i?/?100);//百位數
//獲取個位十位百位?的數?方法二
$str?=?strval($i);
$a?=?$str[2];//個位數
$b?=?$str[1];//十位數
$c?=?$str[0];//百位數
$sum?=?$a?*?$a?*?$a?+?$b?*?$b?*?$b?+?$c?*?$c?*?$c;
if?($sum?==?$i)?{
echo?$i?.?"
";
}
}
方法二://$c?百位數?$b?十位數??$c?個位數
for?($c?=?1;?$c?<=?9;?$c++)?{
for?($b?=?0;?$b?<=?9;?$b++)?{
for?($a?=?0;?$a?<=?9;?$a++)?{
$sum?=?$a?*?$a?*?$a?+?pow($b,?3)?+?pow($c,?3);
$num?=?intval($c.$b.$a);
//$num?=?$c?*?100?+?$b?*?10?+?$a;
if?($sum?==?$num)?{
echo?$num?.?"
";
}
}
}
}
生成任意范圍的水仙花數/**
*?生成任意范圍的水仙花數
*?@param?$min
*?@param?$max
*?@return?array
*/
function?narcissisticNumber($min,?$max)
{
$result?=?array();
for?($n?=?$min;?$n?<=?$max;?$n++)?{
$str?=?strval($n);
$str_len?=?strlen($str);
$sum?=?0;
for?($i?=?0;?$i?
$sum?+=?pow($str[$i],?$str_len);
}
if?($sum?==?$n)?{
$result[]=?$n;
}
}
return?$result;
}
總結
以上是生活随笔為你收集整理的php 输出任意一个数,php 生成任意范围的水仙花数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 50多公里坐滴滴快车要多少钱大概
- 下一篇: php查询记录是否存在,php – 插入