有一類數字稱為"水仙花數量",又稱“自戀數”和“阿姆斯特朗數”。 水仙花數是自然數的一類特殊,水仙花數是指3位數字其每個位上的數字立方體之和等於自身。本文將使用 Python 作為工具,通過用水仙花編寫程式來展示程式設計的獨創性。 **可以共享。
例如:abc = a3 + b3 + c3
例如,153 是水仙花數,因為 (1 3 + 5 3 + 3 3 = 153)。
讓我們一步一步地編寫乙個簡單的python程式來查詢水仙花的數量。
首先,我們需要獲取使用者輸入的範圍,以確定在哪個間隔內查詢水仙花的數量。 我們可以使用它input
函式來實現此步驟。 注意水仙花的數量是三位數字,所以輸入範圍要合理。 例如,開頭為 123,結尾為 456。
start = int(input("請輸入起始範圍:"))end = int(input("請輸入結束範圍:"))
接下來,我們使用迴圈遍歷指定範圍內的每個數字,並檢查它是否是水仙花數字。
for num in range(start, end + 1):方法如下獲取每個數字。
temp = num
sum = 0
while temp > 0:
digit = temp % 10
sum1 += digit **3
temp //= 10
確定是否是水仙花的數量。
if num == sum1:
print(num)
for
迴圈的工作原理:
迭代範圍內的每個數字:通過for num in range(start, end + 1)
,我們遍歷了從起始範圍到結束範圍的所有數字,包括邊界值。
獲取每個數字的立方體之和:對於每個數字num
,我們使用乙個臨時變數temp
儲存num
. 然後,通過乙個while
迴圈,我們從temp
,一點一點地取數字,計算它們的立方體,然後將結果相加到sum1
變數。 While 迴圈,通過執行餘數運算temp % 10
獲取temp
其立方體和意志的計算總和的個位數temp
更新以刪除剩餘的個位數。 這個過程一直持續到temp
變為 0。
確定是否是水仙花的數量。 在每次迭代中,我們檢查num
是否等於sum
如果相等,則表示該數字是水仙花的數量。
最後,我們將上述**放在一起,執行程式,看看在指定範圍內發現了哪些水仙花計數。
start = int(input("請輸入起始範圍:"))通過執行此程式,您將獲得指定範圍內水仙花數量的列表。 例如,開頭為 123,結尾為 456。 對應結果如下:end = int(input("請輸入結束範圍:"))
for num in range(start, end + 1):
temp = num
sum1 = 0
while temp > 0:
digit = temp % 10
sum1 += digit **3
temp //= 10
if num == sum1:
print(num)
當然,還有其他方法可以對水仙花的數量進行程式設計。 讓我們看一下使用列表推導的一種方法和使用函式的一種方法。 列表推理是一種在 Python 中構建列表的簡潔而強大的方法,我們可以用它來找出水仙花的數量。 以下是相應的**:
start = int(input("請輸入起始範圍:"))該方法採用列表推導和字串迭代來計算每個數字每個位元上的立方體之和,並通過條件判斷過濾掉水仙花的數量。 這更簡潔,但效能可能略低於迴圈方法。 再開始 123,結束 456。end = int(input("請輸入結束範圍:"))
使用列表推導來查詢水仙花的數量。
narcissistic_numbers = [num for num in range(start, end + 1) if num == sum(int(digit) *3 for digit in str(num))]
print(narcissistic_numbers)
我們還可以將判斷水仙花數量的過程封裝成乙個函式,以提高**的可讀性和可重用性**
def is_narcissistic(num):就是這樣,開頭是 123,結尾是 456。 得到相同的結果。return num == sum(int(digit) *3 for digit in str(num))
start = int(input("請輸入起始範圍:"))
end = int(input("請輸入結束範圍:"))
使用該函式找出水仙花的數量。
narcissistic_numbers = [num for num in range(start, end + 1) if is_narcissistic(num)]
print(narcissistic_numbers)
此方法是通過函式完成的is_narcissistic
封裝了判斷水仙花數量的邏輯,使主程式更加清晰。 這三種方法各有特點,無論使用哪種方法,都能達到相同的效果,展示了Python程式設計的靈活性和多樣性。
通過編寫這個簡單的水仙花計數程式,我們不僅學會了如何使用 Python 進行基本的使用者輸入和迴圈,還了解了水仙花計數背後的數學原理。 通過這篇部落格,希望大家對水仙花的數量有更深入的了解,並能寫出簡單的程式。