php 判断 水仙花数

水仙花数(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<$max;$i++){$sum=0;
//当前选数下各个幂值的和
$arr=str_split($i);//以字符串方式分割选数
for($j=0;$j$i)
//如果当前累加已大于选数,则跳出循环
break;}if($sum==$i)//如果符合定义,将该数字添加到输出队列
$out.=$i."\n";}
//输出队列
echo$out;}
}
echodaffodilsNum(3);
 
?>

 

你可能感兴趣的:(#,♯,➸,➳,➻,➛,☞,算法,基础算法)