春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
编写一个php函数测试输入的数字是否为水仙花数。(提示:不能将数字当作字符串处理),函数原型为:
flower($n) $n为任意正整数 返回 true/false
//找出范围内 所有位数一样的 数字
public function day2(){
//传入的参数
$num = 10000;
//存储符合要求的数组
$arr = [];
//循环数据
for($i=10;$i<=$num;$i++){
self::$ws = [];
$this->weishu($i);
$count = array_count_values(self::$ws);
if(sizeof($count) == 1){
$arr[] = $i;
}
}
print_r($arr);
}
public function shuixianhua(){
//输入的参数
$n = 153;
//分割个十百位数
$this->weishu($n);
//水仙花数判断
$gewei = self::$ws[0] * self::$ws[0] * self::$ws[0];
$shiwei = self::$ws[1]*self::$ws[1]*self::$ws[1];
$baiwei = self::$ws[2]*self::$ws[2]*self::$ws[2];
$num = $gewei + $shiwei + $baiwei;
if($num == $n){
return $n.‘是水仙花数!‘;
}else{
return $n.‘不是水仙花数!‘;
}
}
static $ws = [];
//计算输入的数值的每位数字
public function weishu($n){
if($n > 9){
self::$ws[] = $n % 10;
$this->weishu(intval($n/10));
}else{
self::$ws[] = $n;
}
}
//个位+百位=十位 的判断方法
public function panduan(){
$num = 456;
$gewei = $num % 10;
$shiwei = intval($num / 10) % 10;
$baiwei = intval($num / 100);
if($gewei+$baiwei == $shiwei){
echo ‘验证成功‘;
}else{
echo ‘验证失败‘;
}
}
原文:https://www.cnblogs.com/songbao/p/11158886.html