水仙花数(Narcissistic number),也被称为自恋数、阿姆斯壮数(Armstrong number),是指一个n nn位正整数(n ≥ 3 n\geq 3n≥3),它的每个位上的数字的n nn次幂之和等于它本身。
举个例子:
153是一个水仙花数,因为
370也是一个水仙花数,因为
407也是一个水仙花数,因为
下面是不同语言实现水仙花数的代码,供大家参考
Python
for i in range(100, 1000): if i == pow(i // 100, 3) + pow(i // 10 % 10, 3) + pow(i % 10, 3): print(i)
C++
#include using namespace std; int main() { for (int i = 100; i < 1000; i++) { int a = i / 100; int b = i / 10 % 10; int c = i % 10; if (i == a * a * a + b * b * b + c * c * c) { cout << i << " "; } } return 0; }
Java
public class NarcissisticNumber { public static void main(String[] args) { for (int i = 100; i < 1000; i++) { int a = i / 100; int b = i / 10 % 10; int c = i % 10; if (i == Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) { System.out.print(i + " "); } } } }
JavaScript
for (let i = 100; i < 1000; i++) { let a = Math.floor(i / 100); let b = Math.floor(i / 10 % 10); let c = i % 10; if (i === Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) { console.log(i); } }
PHP
for ($i = 100; $i < 1000; $i++) { $a = floor($i / 100); $b = floor($i / 10 % 10); $c = $i % 10; if ($i === pow($a, 3) + pow($b, 3) + pow($c, 3)) { echo $i . " "; } }