php水仙の数は何本ですか?
いわゆる「水仙数字」とは、n 桁の数字 (n ≥ 3) を指し、各桁の数字の n 乗の合計がそれ自体に等しくなります。
水仙の数を見つけるための PHP プログラム。さまざまな書き方があります:
メソッド例 1:
<?php header("content-type:text/html;charset=utf-8;"); //设置页面编码为 utf-8 //以下代码求解1000以内的水仙花数 echo '<p>1000以内的水仙花数: </p>'; 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.""; } ?>
出力:
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"; }
<?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 . '<br>' : '';
}
}
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
<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 中国語 Web サイトの他の関連記事を参照してください。