水仙花

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。

编写一个php函数测试输入的数字是否为水仙花数。(提示:不能将数字当作字符串处理),函数原型为:

flower($n)  $n为任意正整数 返回 true/false

复制代码
 1 //找出范围内 所有位数一样的 数字
 2 public function day2(){
 3    //传入的参数
 4    $num = 10000;
 5    //存储符合要求的数组
 6    $arr = [];
 7    //循环数据
 8    for($i=10;$i<=$num;$i++){
 9       self::$ws = [];
10       $this->weishu($i);
11       $count = array_count_values(self::$ws);
12       if(sizeof($count) == 1){
13          $arr[] = $i;
14       }
15    }
16 
17    print_r($arr);
18 }
19 public function shuixianhua(){
20    //输入的参数
21    $n = 153;
22    
23    //分割个十百位数
24    $this->weishu($n);
25    
26    //水仙花数判断
27    $gewei = self::$ws[0] * self::$ws[0] * self::$ws[0];
28    $shiwei = self::$ws[1]*self::$ws[1]*self::$ws[1];
29    $baiwei = self::$ws[2]*self::$ws[2]*self::$ws[2]; 
30    $num = $gewei + $shiwei + $baiwei;
31    if($num == $n){
32       return $n.'是水仙花数!';
33    }else{
34       return $n.'不是水仙花数!';
35    }
36 }
37 static $ws = [];
38 //计算输入的数值的每位数字
39 public function weishu($n){
40    if($n > 9){
41       self::$ws[] = $n % 10;
42       $this->weishu(intval($n/10));
43    }else{
44       self::$ws[] = $n;
45    }
46 }
47 
48 //个位+百位=十位 的判断方法
49 public function panduan(){
50    $num = 456;
51    
52    $gewei = $num % 10;
53    $shiwei = intval($num / 10) % 10;
54    $baiwei = intval($num / 100);
55    
56    if($gewei+$baiwei == $shiwei){
57       echo '验证成功';
58    }else{
59       echo '验证失败';
60    }
61 }
复制代码

 

posted @   情定今生~~~  阅读(284)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示