php中⽔仙花数的求法,php⽔仙花数是什么
php⽔仙花数是什么?
所谓“⽔仙花数”,是指⼀个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本⾝。
PHP求⽔仙花数的程序,有多种写法:
⽅法⽰例⼀:<?php
header("content-type:text/html;chart=utf-8;"); //设置页⾯编码为 utf-8
//以下代码求解1000以内的⽔仙花数
echo '
1000以内的⽔仙花数:
';
for ( $i = 100; $i < 1000; ++ $i )
{
$hundreds = floor( $i / 100); //分解出百位
$tens = floor( $i / 10 ) % 10; //分解出⼗位
$ones = floor( $i % 10 ); //分解出个位
if (bcpow($hundreds,'3')+bcpow($tens,'3')+bcpow($ones,'3') == $i)
echo $i."";
cartographer
}
>
输出:1000以内的⽔仙花数:
153
370
371
407
⽅法⽰例⼆:<?php
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"."
";
}
}
}
}
输出:153
370
371
407
课堂有效性
⽅法⽰例三:<?php
function cube( $n )
{
return $n * $n * $n;
杭州咖啡培训}
function is_narcissistic ( $n )
{
$hundreds = floor( $n / 100); //分解出百位
$tens = floor( $n / 10 ) % 10; //分解出⼗位美容培训学校
$ones = floor( $n % 10 ); //分解出个位
return (bool)(cube($hundreds)+cube($tens)+cube($ones) == $n);
}
for ( $i = 100; $i < 1000; ++ $i )
{
if ( is_narcissistic($i) )
climate怎么读echo $i."\n";
}
⽅法⽰例四:<?php
//阿姆斯特朗数:⼀个k位数,它的每个位上的数字的k次幂之和等于它本⾝。(例如:1^3 + 5^3 + 3^3 = 153) class Armstrong {
static function index(){
for ( $i = 100; $i < 100000; $i++ ) {
echo lf::is_armstrong($i) ? $i . '
' : '';
}
}
static function is_armstrong($num){ $s = 0;
$k = strlen($num);
$d = str_split($num);
foreach ($d as $r) {
$s += bcpow($r, $k);
}
return $num == $s;
}
}
Armstrong::index();
输出:153
370
371
407
1634
8208
9474
54748
92727
93084
⽅法⽰例五:
function winter($num)
{
重庆中学生学习if($num<1000){
//定义个位
$ge=$num%10;
damage//定义⼗位
$ten=(($num%100)-$ge) /10;
//定义百位
/*floor取整,忽略⼩数点后⾯的所有数*/
$hundred=floor($num/100);
aboard
$sum1=$ge*$ge*$ge+$ten*$ten*$ten+$hundred*$hundred*$hundred; if($sum1==$num){
permafrostreturn 1;
} el{
return 0;
}day by day mv
} el{
return -1;
}
}
if(winter(371)==-1) {
echo "⼤于1000的数";
}el{
if(winter(371)) {
echo "Yes";
}
el{
echo "No";
}
}
>
输出:Yes
相关推荐:《PHP教程》