如何用PHP判断三位数是不是水仙花数,并输出
Admin 2022-08-26 群英技术资讯 1010 次浏览
这篇文章主要介绍“如何用PHP判断三位数是不是水仙花数,并输出”,有一些人在如何用PHP判断三位数是不是水仙花数,并输出的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。本文主要带大家来看看,给定一个三位整数,怎么判断该数是不是水仙花数?然后怎么输出全部水仙花数。
首先我们来看看什么是水仙花数?
水仙花数是一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
下面我们先来看看怎么判断给定的一个三位数,它是不是水仙花数?
思路分析:
根据上文我们知道:一个数$num要是水仙花数,那么它要满足: 个位的3次方+十位的3次方+百位的3次方= $num本身
那么我们可以先分解$num,得到个位$g、十位$s、百位$b
然后判断 $g^3 + $^3 +$b^3 是不是等于$num
下面看看实现代码:
<?php
header("Content-type:text/html;charset=utf-8");
function is_narcissistic ( $num ){
$b= intval($num/100);
$s= ($num/10)%10;
$g= $num%10;
// if($b*$b*$b+$s*$s*$s+$g*$g*$g==$num){ 等价于
if(pow($b,3)+pow($s,3)+pow($g,3)==$num){
echo $num."是水仙花数<br>";
}else{
echo $num."不是水仙花数<br>";
}
}
is_narcissistic(153);
is_narcissistic(152);
?>输出结果:

上例中pow($b,3)和$b*$b*$b是等价的,都可以计算$b的三次方($b^3)。pow(x,y)函数可以返回 x 的 y 次方,即x^y。
我们知道水仙花数是一个 3 位数,则它是有定额的,那么如何计算并输出所有的水仙花数呢?这就需要使用循环了。
可以利用for循环来限定范围在100~1000之间,写法:
<?php
header("Content-type:text/html;charset=utf-8");
$i=0;
for ( $num = 100; $num < 1000; $num++){
$b= intval($num/100);
$s= ($num/10)%10;
$g= $num%10;
if(pow($b,3)+pow($s,3)+pow($g,3)==$num){
echo $num."<br>";
$i++;
}
}
echo "水仙花数共有 $i 个";
?>看看输出结果:

除了上面计算并输出所有水仙花数的方法,还可以使用3个for循环遍历每一位来输出所有水仙花数:
<?php
header("Content-type:text/html;charset=utf-8");
$i=0;
for($q=1;$q<=9;$q++){
for($w=0;$w<=9;$w++){
for($e=0;$e<=9;$e++){
if($q*$q*$q + $w*$w*$w + $e*$e*$e ==
100*$q + 10*$w + $e){
echo "$q $w $e "."<p>";
$i++;
}
}
}
}
echo "水仙花数共有 $i 个";
?>看看输出结果:

可以看出,输出结果是一样的。
可以看出,我们在for循环的循环体中,使用一个计数器$num,在每次输出一个三位回文数后,自增1,这样就可以统计出100~999内有多少回文数了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
下面由phpstorm教程栏目给大家介绍如何解决phpstorm不能双击选中变量的问题,希望对需要的朋友有所帮助!
这篇文章主要介绍了Thinkphp5.0框架视图view的循环标签用法,结合实例形式分析了thinkPHP5框架视图view中的volist标签、foreach标签、for标签相关使用方法,需要的朋友可以参考下
很多朋友想要知道PHP怎么样快速导出百万级数据到CSV或者EXCEL文件中,因此,这篇文章就给大家分享一下php百万级数据导出的操作,下面是导出思路,导出源码以及测试,有需要的朋友可以看一下,希望大家有收获。
本篇文章给大家介绍一下php7开启强类型模式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
有时候我们需要使用正则表达式的预查功能,因此就需要了解正向预查与反向预查,这篇问文章就主要给大家介绍正向预查与反向预查的作用以及用法,具有一定的参考价值,感兴趣的朋友就继续往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008