用python實現尋找1000以內的水仙花數(三種方法)


如果一個3位數等於其各位數字的立方和,則稱這個數為水仙花數。

例如:153 = 1^3 + 5^3 + 3^3,因此153就是一個水仙花數。

如何求1000以內的水仙花數呢?

 

方法一:先求得百、十、個位的數字值,再按照水仙花數的定義來找符合條件的數

def shuixianhuashu1():
    for i in range(100,1000):
        m = i // 100    #整除獲得百位數
        n = (i % 100) // 10        #十位數
        k = i % 10       #個位數
        if m**3 + n ** 3 + k ** 3 == i:
            print(i)

方法二:將數字先轉化為字符串,利用字符串索引找到百、十、個位的數字值,再按照水仙花數的定義來找符合條件的數

def shuixianhuashu2():
    for i in range(100,1000):
        s = str(i)    #將數字轉化為字符串
        bai = int(s[0])  #百位
        shi = int(s[1])   #十位
        ge = int(s[2])   #個位
        if i == bai ** 3 + shi** 3 + ge ** 3:
            print(i)

方法三:從百位數開始遍歷,然后遍歷十位數,個位數,再按照水仙花數的定義來找符合條件的數

def shuixianhuashu3():
    for bai in range(1,10):   #遍歷百位
        for shi in range(0,10):         #遍歷十位
            for ge in range(0,10):      #遍歷個位
                x = bai*100 + shi*10 + ge
                if x == bai ** 3 + shi ** 3 + ge ** 3:
                    print(x)

 


免責聲明!

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



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