目錄
Example 1 - 找出所有3位數的阿姆斯壯數總和。
Algorithm
演算法
Python 檔案包含此內容
查看結果 - 範例2
Example 2:找出所有n位阿姆斯特朗數的和。
首頁 後端開發 Python教學 Python程式取得N個阿姆斯壯數的總和

Python程式取得N個阿姆斯壯數的總和

Sep 12, 2023 am 10:41 AM
Python直程式 總和 阿姆斯壯數

Python程式取得N個阿姆斯壯數的總和

如果將數字的每個位數分別提升到總位數的冪,然後將這些子部分相加,得到的結果等於該數字,則稱該數字為阿姆斯特朗數。在這個Python範例中,使用兩個不同的例子,給出了找到n位阿姆斯壯數總和的方法。在範例1中,給出了計算所有3位阿姆斯壯數總和的方法。在範例2中,使用者可以在運行時決定位數。該程式使用4到6位數進行測試。

Example 1 - 找出所有3位數的阿姆斯壯數總和。

Algorithm

的中文翻譯為:

演算法

#步驟 1 - 取得所有三位數的清單。將該列表稱為listofallNums。

第 2 步 - 建立一個函數,如果計算的總和等於數字本身,則傳回一個數字的 3 次方所有數字的總和,否則將傳回-1。

步驟 3 − 對於listofallNums中的所有數字,呼叫上述函數,如果值不為-1,則將其新增至名為listofArmStrNums的清單中。

步驟 4 - 驗證 ArmStrNums 清單中的所有數字都是 3 位的 armStrong 數字。現在將所有這些 3 位 ArmStrong 數字相加。

第 5 步 - 執行程序,然後檢查結果。

Python 檔案包含此內容

numOfDigits=3
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print(listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)  


SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all 3 digit ArmStrong numbers is ", SumofallArmStrongnumbers )
登入後複製

查看結果 - 範例 1

要查看結果,請在命令列視窗中執行Python檔案。

listofallNums contains numbers from  100  to  999
This is an Armstrong number 153
This is an Armstrong number 370
This is an Armstrong number 371
This is an Armstrong number 407
List of ArmStrong Numbers:  [153, 370, 371, 407]
[27, 125, 1]
adding together:
153
[0, 343, 27]
adding together:
370
[1, 343, 27]
adding together:
371
[343, 0, 64]
adding together:
407
Sum of all 3 digit ArmStrong numbers is  1301
登入後複製

圖1:在命令視窗中顯示結果。

Example 2:找出所有n位阿姆斯特朗數的和。

Algorithm

的中文翻譯為:

演算法

#步驟 1 - 輸入數字的值 N 並取得所有 N 位數字的清單。將該清單稱為 listofallNums。

第 2 步 - 建立一個函數,如果計算的總和等於數字本身,則傳回 N 次方所有數字的總和,否則將傳回-1。

步驟 3 − 對於listofallNums中的所有數字,呼叫上述函數,如果值不為-1,則將其新增至名為listofArmStrNums的清單中。

步驟 4 − 驗證清單listofArmStrNums中的所有數字是否為N位數的阿姆斯壯數。現在將所有這些N位數的阿姆斯壯數相加。

第 5 步 - 執行程序,然後檢查結果中是否有 4 位數字和 5 位數字。

Python 檔案包含此內容

numOfDigits = 5
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print("list of sum subparts: ", listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)   

SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all ", numOfDigits, " digit ArmStrong numbers is ", SumofallArmStrongnumbers )
登入後複製

查看結果 - 範例2

開啟cmd視窗並執行python檔案以查看結果。

listofallNums contains numbers from  10000  to  99999
This is an Armstrong number 54748
This is an Armstrong number 92727
This is an Armstrong number 93084
List of ArmStrong Numbers:  [54748, 92727, 93084]
list of sum subparts:  [32768, 1024, 16807, 1024, 3125]
adding together:
54748
list of sum subparts:  [16807, 32, 16807, 32, 59049]
adding together:
92727
list of sum subparts:  [1024, 32768, 0, 243, 59049]
adding together:
93084
Sum of all  5  digit ArmStrong numbers is  240559
登入後複製

圖 2:顯示總和和 n 位元阿姆斯壯數。

在這篇Python文章中,使用兩個不同的例子,給出了找到n位阿姆斯壯數總和的方法。在範例1中,給出了計算所有3位阿姆斯壯數總和的方法。在範例2中,使用者可以在執行時決定數字的位數。如果使用者輸入4,則給出所有4位阿姆斯特朗數及其總和。

以上是Python程式取得N個阿姆斯壯數的總和的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

notepad++怎麼運行python程序 notepad++怎麼運行python程序 Apr 08, 2024 am 03:24 AM

使用 Notepad++ 執行 Python 程式需要以下步驟:1. 安裝 Python 外掛程式;2. 建立 Python 檔案;3. 設定運行選項;4. 執行程式。

PyCharm使用教學:詳細指引你執行操作 PyCharm使用教學:詳細指引你執行操作 Feb 26, 2024 pm 05:51 PM

PyCharm是一款非常受歡迎的Python整合開發環境(IDE),它提供了豐富的功能和工具,使得Python開發變得更有效率和便利。本文將為大家介紹PyCharm的基本操作方法,並提供具體的程式碼範例,幫助讀者快速入門並熟練操作工具。 1.下載安裝PyCharm首先,我們需要前往PyCharm官網(https://www.jetbrains.com/pyc

PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 Feb 20, 2024 am 09:34 AM

PyCharm是一款功能強大的Python整合開發環境,提供了豐富的功能和工具來幫助開發者提高效率。其中,PyInstaller是一個常用的工具,可以將Python程式碼打包為執行檔(EXE格式),方便在沒有Python環境的機器上運作。在本篇文章中,我們將介紹如何在PyCharm中使用PyInstaller將Python程式碼打包為EXE格式,並提供具體的

Llama3突然來襲!開源社群再次沸騰:GPT4級模式自由訪問時代到來 Llama3突然來襲!開源社群再次沸騰:GPT4級模式自由訪問時代到來 Apr 19, 2024 pm 12:43 PM

Llama3來了!就在剛剛,Meta官網上新,官方宣布了Llama380億和700億參數版本。並且推出即為開源SOTA:Meta官方數據顯示,Llama38B和70B版本在各自參數規模上超越一眾對手。 8B模型在MMLU、GPQA、HumanEval等多項基準上都勝過Gemma7B和Mistral7BInstruct。而70B模型則超越了閉源的當紅炸子雞Claude3Sonnet,和谷歌的GeminiPro1.5打得有來有回。 Huggingface連結一出,開源社群再次沸騰。眼尖的盲生還第一時間發現

PyCharm社群版支援的插件足夠嗎? PyCharm社群版支援的插件足夠嗎? Feb 20, 2024 pm 04:42 PM

PyCharm社群版支援的插件足夠嗎?需要具體程式碼範例隨著Python語言在軟體開發領域的應用越來越廣泛,PyCharm作為一款專業的Python整合開發環境(IDE),備受開發者青睞。 PyCharm分為專業版和社群版兩個版本,其中社群版是免費提供的,但其外掛程式支援相對專業版有所限制。那麼問題來了,PyCharm社群版支援的插件夠嗎?本文將透過具體的程式碼範例

python程式的開發流程 python程式的開發流程 Apr 20, 2024 pm 09:22 PM

Python 程式開發流程包括以下步驟:需求分析:明確業務需求和專案目標。設計:確定架構和資料結構,繪製流程圖或使用設計模式。編寫程式碼:使用 Python 編程,遵循編碼規範和文件註解。測試:編寫單元和整合測試,進行手動測試。審查和重構:審查程式碼,發現缺陷和改進可讀性。部署:將程式碼部署到目標環境。維護:修復錯誤、改進功能,並監控更新。

Python GIL入門指南:如何理解並使用全域解釋器鎖 Python GIL入門指南:如何理解並使用全域解釋器鎖 Feb 27, 2024 am 09:10 AM

什麼是GIL? GIL是全域解釋器鎖定的縮寫,它是python解釋器的一個重要概念。 GIL確保了Python解釋器一次只能執行一個執行緒。這意味著在任何時候,只有一個執行緒可以運行Python字節碼。其他執行緒必須等待GIL可用才能繼續執行。 GIL是如何運作的? GIL是一個由C語言編寫的鎖,它位於Python解釋器中。當一個執行緒想要執行Python字節碼時,它必須先取得GIL。如果GIL已經被另一個執行緒持有,那麼該執行緒必須等待GIL可用才能繼續執行。 GIL對Python程式有什麼影響? GIL對Pytho

Flask安裝設定教學:輕鬆建置PythonWeb應用的利器 Flask安裝設定教學:輕鬆建置PythonWeb應用的利器 Feb 20, 2024 pm 11:12 PM

Flask安裝設定教學:輕鬆建置PythonWeb應用的利器,需要具體程式碼範例引言:隨著Python的日益流行,Web開發也成為了Python程式設計師的必備技能之一。而要進行Python的Web開發,我們需要選擇適合的Web框架。在眾多的PythonWeb框架中,Flask是一款簡潔、易上手且靈活的框架,備受開發者的青睞。本文將介紹Flask框架的安裝、

See all articles