一、水仙花數定義及特點
水仙花數,又稱為超完全數字不變數、自戀數、阿姆斯特朗數,是指一個三位數的各位數字的立方和等於該數本身。例如,153就是一個水仙花數。它的各位數字立方和為1^3 + 5^3 + 3^3 = 153。水仙花數是數學中一類十分有趣的數字,它具有以下特點:
1、水仙花數是一個三位數;
2、水仙花數的個位、十位和百位的數字的立方和等於該數本身。
二、水仙花數 Java 代碼實現
下面是一個簡單的 Java 代碼實現水仙花數:
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int hun = i / 100; // 百位數
int ten = (i / 10) % 10; // 十位數
int one = i % 10; // 個位數
if (i == hun * hun * hun + ten * ten * ten + one * one * one) {
System.out.println(i);
}
}
}
}
上述代碼生成了從100到999之間的所有三位數,並依次計算它們每個數位的立方和。如果該三位數等於它的每個數位的立方和之和,那麼就輸出它。
三、水仙花數 Python 代碼實現
以下是一個 Python 代碼實現水仙花數:
for num in range(100, 1000):
i = num // 100 # 百位數
j = num // 10 % 10 # 十位數
k = num % 10 # 個位數
if num == i ** 3 + j ** 3 + k ** 3:
print(num)
Python 的實現思路與 Java 相似,通過循環來計算每個數位的立方和,判斷該數是否等於其數位的立方和之和。
四、水仙花數 VBA 代碼實現
以下是一個 VBA 代碼實現水仙花數:
Sub NarcissisticNumber()
For i = 100 To 999
hun = Int(i / 100) ' 百位數
ten = Int(i / 10) Mod 10 ' 十位數
one = i Mod 10 ' 個位數
If i = hun ^ 3 + ten ^ 3 + one ^ 3 Then
Debug.Print i
End If
Next i
End Sub
VBA 實現水仙花數與其他語言實現方法類似,需要使用循環和條件判斷語句。
五、水仙花數 C++ 代碼實現
以下是一個 C++ 代碼實現水仙花數:
#include <iostream>
using namespace std;
int main() {
for (int i = 100; i < 1000; i++) {
int hun = i / 100; // 百位數
int ten = (i / 10) % 10; // 十位數
int one = i % 10; // 個位數
if (i == hun * hun * hun + ten * ten * ten + one * one * one) {
cout << i << endl;
}
}
return 0;
}
與其他語言實現思路相似,C++ 代碼需要使用循環和條件判斷語句。
六、水仙花數 Python 程序代碼選取
以下是一個使用 Python 程序代碼選取水仙花數的實例:
def is_narcissistic_number(num):
num_str = str(num)
n = len(num_str)
return num == sum([int(x) ** n for x in num_str])
narcissistic_numbers = [num for num in range(100, 1000) if is_narcissistic_number(num)]
print(narcissistic_numbers)
Python 程序代碼使用一個函數來判斷一個數是否是水仙花數,然後使用列表推導式來選取所有三位水仙花數並輸出。
七、總結
本文詳細介紹了水仙花數的定義及特點,並提供了多種語言實現水仙花數的代碼示例,包括 Java、Python、VBA 和 C++。通過對比這些代碼,可以發現不同編程語言之間實現同一問題的方法和語法有所不同,但基本思路和解決方案都是相似的。
原創文章,作者:IQSF,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/142362.html