Rumah > Artikel > pembangunan bahagian belakang > Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil
Dalam artikel sebelumnya "Pembelajaran Gelung PHP 9: Mendapatkan faktor sepunya terbesar antara dua nombor yang diberikan", kami memperkenalkan kepada anda cara menggunakan pernyataan gelung while untuk mencari dua nombor yang diberikan dalam PHP program. Pembahagi sepunya terbesar antara dua integer, mari kita teruskan belajar tentang gelung PHP~
Artikel ini terutamanya menunjukkan kepada anda, diberi integer tiga digit, bagaimana untuk menentukan sama ada nombor itu adalah nombor narcissus? Kemudian bagaimana untuk mengeluarkan jumlah bilangan daffodil.
Mula-mula mari kita lihatApakah Nombor Narcissus?
Nombor narcissus ialah nombor 3 digit, jumlah kuasa ke-3 digit dalam setiap digit adalah sama dengan dirinya (contohnya: 1^3 5^3 3^3 = 153 ).
Mari kita lihat dahulu bagaimana untuk menentukan sama ada nombor tiga digit yang diberikan ialah nombor narcissus?
Analisis idea:
Menurut perkara di atas kita tahu: Jika nombor $num
ialah nombor narcissus, maka ia mesti memenuhi: 个位的3次方 十位的3次方 百位的3次方= $num本身
Kemudian kita boleh menguraikan dahulu $num
untuk mendapatkan digit satu $g、
puluhan $s
, digit ratusan$b
dan kemudian menilai sama ada $g^3 $^3 $b^3
sama dengan $num
Mari kita lihat kod pelaksanaan:
<?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); ?>
Hasil keluaran:
Dalam contoh di atas, pow($b,3)
dan $b*$b*$b
adalah bersamaan , boleh mengira kubus $b ($b^3
). Fungsi pow(x,y)
boleh mengembalikan x dinaikkan kepada kuasa y, iaitu x^y
.
Kita tahu bahawa nombor daffodil adalah nombor 3 digit, jadi ia mempunyai kuota Jadi bagaimana untuk mengira dan mengeluarkan semua nombor daffodil? Ini memerlukan penggunaan gelung.
Anda boleh menggunakan gelung for untuk mengehadkan julat antara 100 dan 1000. Menulis:
<?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 个"; ?>
Lihat output:
Sebagai tambahan kepada kaedah pengiraan dan pengeluaran semua nombor daffodil di atas, anda juga boleh menggunakan 3 untuk gelung untuk melintasi setiap digit untuk mengeluarkan semua nombor daffodil:
<?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 个"; ?>
Lihat hasil output:
Dapat dilihat bahawa hasil output adalah sama.
Dapat dilihat bahawa kita menggunakan pembilang $num
dalam badan gelung gelung for Selepas mengeluarkan nombor palindrom tiga digit setiap kali, ia bertambah sebanyak 1, supaya 100~999 boleh. dikira Kira berapa banyak palindrom yang terdapat di dalamnya.
Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php
Atas ialah kandungan terperinci Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!