Rumah > pembangunan bahagian belakang > tutorial php > Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil

Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil

青灯夜游
Lepaskan: 2023-04-10 15:18:02
asal
7378 orang telah melayarinya

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);
?>
Salin selepas log masuk

Hasil keluaran:

Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil

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 个";
?>
Salin selepas log masuk

Lihat output:

Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil

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 个";
?>
Salin selepas log masuk

Lihat hasil output:

Pembelajaran gelung PHP sepuluh: tentukan bilangan daffodil dan cetak bilangan semua daffodil

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan