求 100~999 之間的所有水仙花數(python超級入門)


------------恢復內容開始------------

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

一般思路:隨機函數生成100~999的三位數,一次做運算,算出各位數字,在做立方相加,跟原數比較,如果相等就輸出

再次彈了彈自己的傻瓜腦子,python的運算符過於智能,用/一直沒有結果,這里要用地板除向下取個整數即可

for i in range(100,1000):
    sum = 0
    a = i//100
    b = (i-a*100)//10
    c = i-a*100-b*10
    sum = a**3 + b**3 + c**3
    if sum == i:
        print(i)

運行結果:

D:\Python\python.exe D:/Python/test/水仙花數.py
153
370
371
407

如果是(100,10000000)呢,這個本方法就要定義很多個變量,占用空間不說,若范圍繼續擴大,唉太垃圾了 

網上參考答案:

for i in range(100,1000):
    sum = 0
    temp = i
    while temp:
        sum = sum +(temp%10) ** 3
        temp //= 10
    if sum == i:
        print(i)

i

------------恢復內容結束------------


免責聲明!

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



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