如何使用 While 循環、For 循環、函數和遞歸為阿姆斯特朗數編寫 Python 程序?。我們還向您展示了列印 1 到 n 之間的阿姆斯特朗數字的 Python 程序
如果給定的數字等於該整數中每個數字的 n 次方之和,那麼它可以是 Python 中的阿姆斯特朗數。比如 370 就是阿姆斯特朗數。
370 中的個別數字= 3
370 = 3г+7г+0г
= 27 + 343 + 0 = 370
以下步驟向您展示了在 Python 中檢查阿姆斯特朗編號的常見方法
- 用戶必須輸入任何數字。
- 計算單個數字的總數(例如,370 表示 3)。
- 將給定的數字分成獨立的數字(例如,將 370 分成 3、7 和 0)。
- 計算每個個體的 n 次方,並將這些數相加。
- 將原始值與總和值進行比較。
- 如果他們完全匹配,那麼它是一個阿姆斯特朗數,否則它不是。
這個 Python 程序允許用戶輸入任何正整數。然後,這個 Python 程序使用 While 循環檢查一個數字是否是阿姆斯特朗數
Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))
# Initializing Sum and Number of Digits
Sum = 0
Times = 0
# Calculating Number of individual digits
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
# Finding Armstrong Number
Temp = Number
while Temp > 0:
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Number == Sum:
print("\n %d is Armstrong Number.\n" %Number)
else:
print("\n %d is Not a Armstrong Number.\n" %Number)
Python 中的 Armstrong Number 使用 While 循環輸出
python 程序中的阿姆斯特朗數允許用戶輸入任意正整數,然後將其賦給變數 number。
接下來,我們將原始值賦給臨時變數。它有助於保留我們的原始值,然後對 Temp 變數進行所有操作。
第一個 While 循環確保給定的數字大於 0,While 循環中的語句會拆分數字,並計算給定整數中各個數字的總數。如果您不理解 Python 程序的邏輯,請參考 Python 程序查找數字文章中的位數。
python 程序中阿姆斯特朗數的第二個 While 循環確保給定的數字大於 0。讓我們看看迭代循環的工作原理
當溫度> 0 時:提醒=溫度% 10 總和=總和+(提醒**次)溫度/= 10
用戶為此 Python 程序輸入的值,用於 Armstrong Number : Number= 9474,Sum = 0
溫度=數字
溫度= 9474
第一次迭代
提醒= Temp %10
提醒= 9474 % 10 = 4
總和=總和+冪(提醒,次數)
對於這個 Python 的例子,Times =4,因為 9474 中的位數=4。所以,
Sum = Sum +(提醒提醒提醒提醒)
Sum = 0+(4 4 4 4)=>0+256 =>Sum = 256T3
溫度=溫度/10 => 9474 /10
溫度= 947
注:如果數字計數為 5,則提醒乘以 5 倍。
第二次迭代:從 Python 程序中,對於 Armstrong Number 第一次迭代,Temp 和 Sum 的值都更改為 Temp = 163,Sum = 256
提醒=溫度%10
提醒= 947 % 10 = 7
總和= 256 + (7 7 7 * 7) => 256 + 2401
總和= 2657
Temp = Temp/10 = > 163/10
Temp = 94
第三次迭代:從第二次迭代開始,Temp = 94,Sum = 2657。
提醒= 94 % 10 = 4
求和= 2657 + (4 4 4 * 4) => 2657 + 256
求和= 2913T2T4】
溫度= 94 /10 = 9
阿姆斯特朗數第四次迭代的 Python 程序
從第三次迭代開始,Temp = 9,Sum = 2913 的值
提醒= 9 % 10 = 0
總和= 2913+(9 9 9)= > 2913+6561
總和= 9474
Temp = 9/10 = 0
這裡 Temp = 0,所以 while 循環條件失敗。
if(Number = = Sum)–條件檢查用戶輸入的是否完全等於 Sum。如果這個條件為真,那麼它是阿姆斯特朗數,否則它不是。
讓我檢查一下(數字= =總和)
如果(9474 = = 9474)–真,表示阿姆斯特朗
注意:如果您發現 Python Armstrong 數字低於 1000,請刪除 while 循環以計算數字中的位數,然後替換下面的代碼
Sum = Sum + (Reminder ** Times);
With
Sum = Sum + (Reminder * Reminder * Reminder)
該 Python 程序允許用戶輸入任意正整數,然後,該程序使用 Python For Loop 檢查一個數字是否為 Armstrong Number
Num = int(input("\nPlease Enter the Value : "))
Sum = 0
Times = 0
Temp = Num
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Num
for n in range(1, Temp + 1):
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Num == Sum:
print("\n %d is Armstrong.\n" %Num)
else:
print("\n %d is Not a Armstrong.\n" %Num)
Please Enter the Value : 371
371 is Armstrong.
Please Enter the Value : 4458
4458 is Not a Armstrong.
我們剛剛用 For 循環替換了上面 Python 例子中阿姆斯特朗數中的 While 循環。如果您不理解 for 循環,請參考這裡的 For 循環文章: Python For 循環
這個 Python 程序允許用戶輸入任何正整數。然後,這個程序檢查一個數字是否是阿姆斯特朗數或不使用功能
def Armstrong_Number(Number):
Sum = 0
Times = 0
# Calculating individual digits
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Number
for n in range(1, Temp + 1):
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
return Sum
#User Input
Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))
if (Number == Armstrong_Number(Number)):
print("\n %d is Armstrong.\n" %Number)
else:
print("\n %d is Not an Armstrong.\n" %Number)
Please Enter the Number to Check for Armstrong: 153
153 is Armstrong.
>>>
Please Enter the Number to Check for Armstrong: 2256
2256 is Not an Armstrong.
在這個關於阿姆斯特朗數的 Python 程序示例中,我們定義了以下函數來執行所有必要的計算並返回 Sum。
def Armstrong_Number(Number):
當編譯器到達 If 語句中的以下代碼時,編譯器立即跳轉到上面指定的函數。
Armstrong_Number(Number)
我們已經解釋了上面的邏輯例子。
這個程序允許我們輸入任何正整數。接下來,這個 Python 程序使用遞歸概念檢查一個數字是否是阿姆斯特朗。
Sum = 0
Times = 0
def Count_Of_Digits(Number):
global Times
if(Number > 0):
Times = Times + 1
Count_Of_Digits(Number // 10)
return Times
def Armstrong_Number(Number, Times):
global Sum
if(Number > 0):
Reminder = Number % 10
Sum = Sum + (Reminder ** Times)
Armstrong_Number(Number //10, Times)
return Sum
Number = int(input("\nPlease Enter the Number : "))
Times = Count_Of_Digits(Number)
Sum = Armstrong_Number(Number, Times)
if (Number == Sum):
print("\n %d is Armstrong.\n" %Number)
else:
print("\n %d is Not a Armstrong.\n" %Number)
Please Enter the Number : 153
153 is Armstrong.
>>>
Please Enter the Number : 259
259 is Not a Armstrong.
在這個阿姆斯特朗數的 Python 程序示例中,我們定義了兩個遞歸函數。下面的函數接受整數值作為參數值,並遞歸地計算一個數字中各個數字的總數。
def Count_Of_Digits(Number):
以下函數接受兩個整數值作為參數值。它執行所有必要的計算並返回 Sum。
def Armstrong_Number(Number, Times):
阿姆斯特朗數的 Python 程序中的以下語句有助於用更新的值遞歸調用函數。如果您錯過了此語句,那麼在完成第一行後,它將終止。例如
Armstrong_Number(Number //10, Times)
數量= 153
那麼輸出= 27
讓我們看看上面指定的功能 裡面的 If 語句
如果(數字> 0),檢查數字是否大於 0。對於遞歸函數,在遞歸使用函數之前放置一個條件是很重要的。否則,我們最終會陷入無限執行(就像無限循環一樣)。
該程序允許您輸入最小值和最大值。這個 Python 程序返回介於最小值和最大值之間的阿姆斯特朗數。
python 程序中阿姆斯特朗數的前兩個語句允許用戶輸入最小值和最大值。
循環的Python有助於最小和最大變數之間的迭代。迭代從最小值開始,然後不會超過最大值變數。
if(Number = = Sum)-–條件檢查該整數中每個數字的冪 N 之和是否等於給定的數字。當條件為真時,它是阿姆斯特朗,否則它不是。
如果該條件為真,則列印該數字。
Minimum = int(input("Please Enter the Minimum Value: "))
Maximum = int(input("\n Please Enter the Maximum Value: "))
for Number in range(Minimum, Maximum + 1):
Sum = 0
Times = 0
Temp = Number
while Temp > 0:
Times = Times + 1
Temp = Temp // 10
Temp = Number
while Temp > 0:
Reminder = Temp % 10
Sum = Sum + (Reminder ** Times)
Temp //= 10
if Number == Sum:
print(Number)
阿姆斯特朗的輸出從 10 到 10000
Please Enter the Minimum Value: 10
Please Enter the Maximum Value: 10000
153
370
371
407
1634
8208
9474
原創文章,作者:UG51B,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126260.html