水仙花
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如: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 }
分类:
算法
· 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应用必不可少的技术