Python 程序:阿姆斯特朗數

如何使用 While 循環、For 循環、函數和遞歸為阿姆斯特朗數編寫 Python 程序?。我們還向您展示了打印 1 到 n 之間的阿姆斯特朗數字的 Python 程序

如果給定的數字等於該整數中每個數字的 n 次方之和,那麼它可以是 Python 中的阿姆斯特朗數。比如 370 就是阿姆斯特朗數。

370 中的個別數字= 3

370 = 3г+7г+0г

= 27 + 343 + 0 = 370

以下步驟向您展示了在 Python 中檢查阿姆斯特朗編號的常見方法

  1. 用戶必須輸入任何數字。
  2. 計算單個數字的總數(例如,370 表示 3)。
  3. 將給定的數字分成獨立的數字(例如,將 370 分成 3、7 和 0)。
  4. 計算每個個體的 n 次方,並將這些數相加。
  5. 將原始值與總和值進行比較。
  6. 如果他們完全匹配,那麼它是一個阿姆斯特朗數,否則它不是。

這個 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-hant/n/126260.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UG51B的頭像UG51B
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論