作业

原宿 2019-11-09 01:03:33
用while循环编写一个程序,找出所有的水仙花数
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41450036 2019-11-21
  • 打赏
  • 举报
回复
$i = 100; $numArr = array(); while ($i < 1000) { $i1 = substr($i, 0, 1); $i2 = substr($i, 1, 1); $i3 = substr($i, 2, 1); $newNum = pow($i1, 3) + pow($i2, 3) + pow($i3, 3); if ($i == $newNum) { $numArr[] = $i; } ++$i; } print_r($numArr); die;
于小九 2019-11-11
  • 打赏
  • 举报
回复
<?php //设置页面编码为 utf-8 header("content-type:text/html;charset=utf-8;"); /** * for循环查找水仙花数 * @param $smallnum 需要查找的最小水仙花范围 * @param $maxnum 需要查找的最大水仙花范围 * @param $digit 水仙花数 * @return 返回水仙花数组 */ function narcissus_for($smallnum = 100, $maxnum = 1000, $digit = 3) { for($i = $smallnum; $i < $maxnum;$i ++) { //分解百位 $hundreds = floor($i / 100); //分解十位 $tens = floor($i / 10) % 10; //分解个位 $ones = floor($i % 10); //水仙花数成立时 if(bcpow($hundreds,$digit) + bcpow($tens,$digit) + bcpow($ones,$digit) == $i) //写入数组 $arr[] = $i; } //返回所有水仙花数 return $arr; } /** * while循环查找水仙花数 原理都是一样的,保证每个位上的数字的 n 次幂之和等于它本身即可 * @param $smallnum 需要查找的最小水仙花范围 * @param $maxnum 需要查找的最大水仙花范围 * @param $digit 水仙花数 * @return 返回水仙花数组 */ function narcissus_while($smallnum = 100, $maxnum = 1000, $digit = 3) { //初始化当前数字 $i = $smallnum; //开始循环 while($i < $maxnum) { //分解百位 $hundreds = floor($i / 100); //分解十位 $tens = floor($i / 10) % 10; //分解个位 $ones = floor($i % 10); //水仙花数成立时 if(bcpow($hundreds,$digit) + bcpow($tens,$digit) + bcpow($ones,$digit) == $i) //写入数组 $arr[] = $i; //计数 $i++; } //返回所有水仙花数 return $arr; } //for循环 var_dump(narcissus_for()); //换个行 echo "<br/>"; //while循环 var_dump(narcissus_while());
于小九 2019-11-11
  • 打赏
  • 举报
回复
<?php //设置页面编码为 utf-8 header("content-type:text/html;charset=utf-8;"); /** * @param $smallnum 需要查找的最小水仙花范围 * @param $maxnum 需要查找的最大水仙花范围 * @param $digit 水仙花数 * @return */ function narcissus($smallnum = 100, $maxnum = 1000, $digit = 3) { for($i = $smallnum; $i < $maxnum;$i ++) { //分解百位 $hundreds = floor($i / 100); //分解十位 $tens = floor($i / 10) % 10; //分解个位 $ones = floor($i % 10); //水仙花数成立时 if(bcpow($hundreds,$digit) + bcpow($tens,$digit) + bcpow($ones,$digit) == $i) //写入数组 $arr[] = $i; } //返回所有水仙花数 return $arr; } var_dump(narcissus());
于小九 2019-11-11
  • 打赏
  • 举报
回复
你这个题该不是要一直无限循环下去吧?没有指定找出多少个吗

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧