作业 用while循环编写一个程序,找出所有的水仙花数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php//设置页面编码为 utf-8header("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()); <?php//设置页面编码为 utf-8header("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()); $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; 上传文件练习 上传成功后,临时目录没文件 PHP数组比较 求解 如何采集不被发现 能否帮我解释一下这句代码的含义 请教一下这个 mysql 语句怎么写 散分!做网站,如何分配前后台的工作?谈谈对下面分配的看法. 一个php查询mysql数据库的问题!急!在线等! MYSQL连接问题 如何正确显示htmlarea存到Mysql的数据? 急!!从哪里可以得到PHP的中文帮助手册? 使用preg_replace()替换中文符号导致替换为多个如何解决 请问大佬 如何实现用带key的链接访问浏览限时
//设置页面编码为 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());
//设置页面编码为 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());
$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;