PHP输出所有位数的水仙花

1月以前  |  阅读数:4 次  |     收藏

判断水仙花数

什么是水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

<?php
/***水仙花数为不小于3位的数字,每位数字的N次幂的和等于该数字.N为该数字的位数*@namedaffodilsNum水仙花数*@param$places水仙花位数>=3*/
function daffodilsNum($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<PLACES;++$j)//对每个数字作幂操作并累加
            {
                $sum+=pow($arr[$j],PLACES);
                if($sum>$i)
                //如果当前累加已大于选数,则跳出循环
                    break;}
                if($sum==$i)//如果符合定义,将该数字添加到输出队列
                    $out.=$i."\n";
            }
        //输出队列
        echo$out;
    }
}
echo daffodilsNum(3);

?>

相关文章:


SSH 登录失败:Host key verification failed

PHP分页显示制作详细讲解

PHP自定义函数获取搜索引擎来源关键字的方法

在Zeus Web Server中安装PHP语言支持

再谈PHP中单双引号的区别详解

让你成为最历害的git提交人

将二进制数据转为16进制以便显示

php+ajax+json 详解及实例代码

PHP实现简单爬虫的方法

Python 2与Python 3版本和编码的对比

php实现数组中索引关联数据转换成json对象的方法

桌面中心(一)创建数据库

PHP设计模式之工厂模式与单例模式

php数组合并array_merge()函数使用注意事项

php封装的page分页类完整实例

wget使用技巧

getAttribute和getAttributeNode

获取IMSI

Yii2汉字转拼音类的实例代码

python中执行shell的两种方法总结