Armstrong Number
Nombor Armstrong merujuk kepada jumlah kuasa N bagi setiap digit nombor yang sama dengan nombor itu sendiri, di mana n adalah bilangan digit nombor. Artikel ini akan membincangkan bagaimana untuk memeriksa sama ada nombor tertentu adalah nombor Armstrong.
Contoh
mari kita fahami nombor Armstrong dengan beberapa contoh input dan output.
masukkan
<code>9474</code>
Salin selepas log masuk
output
<code>是</code>
Salin selepas log masuk
Salin selepas log masuk
Penjelasan
Ini adalah nombor empat digit. Nombor untuk nombor ini adalah 9, 4, 7 dan 4.
<code>9474 = 9<sup>4</sup> + 4<sup>4</sup> + 7<sup>4</sup> + 4<sup>4</sup><br>= 6561 + 256 + 2401 + 256<br>= 9474</code>
Salin selepas log masuk
Jadi, ini adalah nombor Armstrong.
masukkan
<code>153</code>
Salin selepas log masuk
output
<code>是</code>
Salin selepas log masuk
Salin selepas log masuk
Penjelasan
Ini adalah digit triple. Nombor untuk nombor ini adalah 1, 5 dan 3.
<code>153 = 1<sup>3</sup> + 5<sup>3</sup> + 3<sup>3</sup><br>= 1 + 125 + 27<br>=153</code>
Salin selepas log masuk
Jadi, ini adalah nombor Armstrong.
Kaedah Penyelesaian
Kami akan mendapat integer sebagai input. Kami mula -mula menulis fungsi untuk mengira jumlah digit. Sekarang kita memulakan pembolehubah untuk menyimpan jumlah dan menyimpan nombor asal dalam mana -mana pembolehubah. Sekarang, kami menggunakan pengendali Modulo untuk mengekstrak setiap nombor nombor dan menambah kuasa nombor ke jumlah digit. Akhirnya, kami menyemak sama ada jumlah yang dikira sama dengan nombor asal.
pelaksanaan php
mengakses penyelesaian kepada masalah di atas dalam PHP berikutan langkah -langkah -
Kami menulis fungsi untuk mengira bilangan bit dalam nombor. -
Sekarang, tulis fungsi lain untuk memeriksa sama ada nombor adalah nombor Armstrong. -
memulakan jumlah pembolehubah dan simpan nombor asal -
Sekarang gunakan pengendali modulo untuk mengekstrak setiap nombor satu demi satu dan tambahkan kuasa nombor ke kiraan nombor. -
Gunakan pengendali bahagian untuk memadam digit terakhir. -
Selepas keluar gelung, periksa sama ada jumlahnya sama dengan nombor asal. -
Jika ya, maka ini adalah nombor Armstrong. -
Contoh
Berikut adalah pelaksanaan langkah -langkah pelaksanaan yang dibincangkan di atas dalam PHP.
<?php
// 计算数字位数的函数
function countDigits($num) {
return strlen((string)$num);
}
// 检查数字是否为阿姆斯特朗数的函数
function isArmstrong($num) {
$k = countDigits($num);
$sum = 0;
$originalNum = $num;
while ($num > 0) {
$ld = $num % 10;
$sum += pow($ld, $k);
$num = (int)($num / 10);
}
return $sum == $originalNum;
}
$number = 153;
if (isArmstrong($number)) {
echo "$number 是阿姆斯特朗数。";
} else {
echo "$number 不是阿姆斯特朗数。";
}
?>
Salin selepas log masuk
output
<code>153 是阿姆斯特朗数。</code>
Salin selepas log masuk
kerumitan masa: o (d * n), di mana d adalah bilangan digit dan n adalah kuasa setiap nombor
kerumitan ruang: (1), ruang malar
Atas ialah kandungan terperinci Program PHP untuk memeriksa sama ada nombor adalah nombor Armstrong. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!