>  기사  >  백엔드 개발  >  PHP의 수선화 번호는 무엇입니까

PHP의 수선화 번호는 무엇입니까

藏色散人
藏色散人원래의
2019-09-16 14:56:295934검색

PHP의 수선화 번호는 무엇입니까

php수선화의 수는 몇 개입니까?

소위 "수선화 수"는 n자리 숫자(n≥3)를 의미하며, 각 숫자에 포함된 숫자의 n제곱의 합은 그 자체와 같습니다.

수선화의 수를 찾기 위해 PHP 프로그램을 작성하는 방법에는 여러 가지가 있습니다.

방법 예 1:

<?php
header("content-type:text/html;charset=utf-8;"); //设置页面编码为 utf-8
//以下代码求解1000以内的水仙花数
echo &#39;<p>1000以内的水仙花数: </p>&#39;;
for ( $i = 100; $i < 1000; ++ $i )
{
    $hundreds = floor( $i / 100);    //分解出百位
    $tens = floor( $i / 10 ) % 10;   //分解出十位
    $ones = floor( $i % 10 );        //分解出个位
    if (bcpow($hundreds,&#39;3&#39;)+bcpow($tens,&#39;3&#39;)+bcpow($ones,&#39;3&#39;) == $i)
        echo $i."";
}
?>
# 🎜🎜# 출력:

1000以内的水仙花数:
153
370
371
407

방법 예 2:

<?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"."<p>";
            }
        }
    }
}

출력:

153
370
371
407

방법 예 3:

<?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) )
        echo $i."\n";
}

방법 예 4:

<?php
//阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
class Armstrong {
    static function index(){
        for ( $i = 100; $i < 100000; $i++ ) {
            echo self::is_armstrong($i) ? $i . &#39;<br>&#39; : &#39;&#39;;
        }
    }
    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

# 🎜🎜# 방법 예 5:

<html>
<head>
<title></title>
</head>
<body>
<?php
function winter($num)
{
if($num<1000){
//定义个位
$ge=$num%10;
//定义十位
$ten=(($num%100)-$ge) /10;
//定义百位
/*floor取整,忽略小数点后面的所有数*/
$hundred=floor($num/100);
$sum1=$ge*$ge*$ge+$ten*$ten*$ten+$hundred*$hundred*$hundred;
if($sum1==$num){
return 1;
} else{
return 0;
}
} else{
return -1;
}
}
if(winter(371)==-1) {
echo "大于1000的数";
}else{
if(winter(371)) {
echo "Yes";
}
else{
echo "No";
}
}
?>
</body>
</html>
출력:

Yes

관련 권장 사항: "

PHP 튜토리얼

"

위 내용은 PHP의 수선화 번호는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.