水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
(例如:1^3 + 5^3+ 3^3 = 153)。
常见水仙花数
水仙花数又称阿姆斯特朗数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477
……
判断是不是水仙花数
//定义一个数判断是不是 水仙花数
$str = '326';
$arr = [];
$one = ($str % 10) ;
$two = ($str / 100) %10 ;
$three = ($str /10) %10 ;
$num = 0;
$num = $one*$one*$one + $two*$two*$two + $three*$three*$three;
if($num == $str){
return $str.'是水仙花数';
}else{
return $str.'不是水仙花数';
}
或 PHP水仙花数实现代码
PHP所有位数理论输出
=3*/
functiondaffodilsNum($places=3){//定义位数
if(!defined('PLACES'))define('PLACES',is_numeric($places)?$places:3);
if(PLACES>=3){$min=pow(10,PLACES-1);
//选数范围起始位置
$max=pow(10,PLACES);
//选数范围结束位置//开始选数
for($i=$min,$out='';$i$i)
//如果当前累加已大于选数,则跳出循环
break;}if($sum==$i)//如果符合定义,将该数字添加到输出队列
$out.=$i."\n";}
//输出队列
echo$out;}
}
echodaffodilsNum(3);
?>