Python基礎練習之一輸出10000以內的阿姆斯特朗數


Python基礎練習之一輸出10000以內的阿姆斯特朗數

題目解析

要解這道題,首先我們要清楚阿姆斯特朗數是什么意思;阿姆斯特朗數是說如果一個n位正整數等於其各位數字的n次方之和,則稱該數為阿姆斯特朗數。比如13 + 53 + 33 = 153,14+64+34+44=1634

解題思路

1.利用for循環遍歷1-10000
2.根據常識,1-9都是阿姆斯特朗數,直接輸出即可
3.判斷位數,進行數字拆分,使用除法和取余運算,得到各個位數上的數字
4.進行運算和判斷

代碼展示

#!/usr/bin/python3
#-*- coding:UTF-8 -*-

print("10000以內的阿姆斯特朗數有:")
for number in range(1, 10001):
    if  number < 10: #1-9都為阿姆斯特朗數,直接輸出即可
        print(number)
    elif number < 100:
        n1 = number % 10 #取個位數
        n2 = int(number/10 % 10) #取十位數
        result = n1**2 + n2**2
        if number == result:
            print(number)
    elif number < 1000:
        n1 = number % 10
        n2 = int(number/10 % 10)
        n3 = int(number/100 % 10) #取千位數
        result = n1**3 + n2**3 + n3**3
        if number == result:
            print(number)
    elif number < 10000:
        n1 = number % 10
        n2 = int(number/10 % 10)
        n3 = int(number/100 % 10)
        n4 = int(number/1000 % 10) #取萬位數
        result = n1**4 + n2**4 + n3**4 + n4**4 #各位數進行次方運算
        if number == result:
            print(number)

執行結果如下:
運行結果

最后總結

練習總結

1.練習for循環的運用
2.if的用法
3.取數字各位數上的數字

改進思考

1.在分解數字的時候,可以使用//進行整除,這樣就不用再使用int函數轉換了
2.在判斷數字位數的時候,是否還有另外的辦法,比如直接對5位數進行分解,然后從高位開始判斷,知道某一位不等於0,即可判斷數字位數,比如00124的時候,即為3位數。

阿里雲時間

1.1888代金券,長期有效:1888
2.雙十一組團,10.30-11.13有效:11.11
3.購物車滿1000減50:裝載購物車


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM