1. 程式人生 > >[Python3 練習] 004 水仙花數

[Python3 練習] 004 水仙花數

程序 int form 自身 str 等於 [1] pre 所有

題目:水仙花數

(1) 描述

  • 水仙花數各位的數字的立方之和等於自身
  • 如 153 為水仙花數,因為 153 = 1^3 + 5^3 + 3^3

(2) 要求

  • 找到所有的三位數的水仙花數

(3) 程序

# 解法1

for i in range(100, 1000):
    bai = i//100
    shi = i%100//10
    ge  = i%10

    if (bai**3 + shi**3 + ge**3) == i:
        print("{0} is narcissistic number.".format(i))
        
print("Over!")
# 解法2

for i in range(100, 1000):
    temp = list(str(i))
    a = int(temp[0])
    b = int(temp[1])
    c = int(temp[2])
    
    if a**3 + b**3 + c**3 == i:
        print("{0} is narcissistic number.".format(i))
        
print("Over!")

(4) 小結

  • if a**3 + b**3 + c**3 == i: 可知“判斷”的優先級較低,但加個括號更清晰
  • 題外話
    • 三位數的水仙花數有 4 個,分別是 153、370、371、407
    • 水仙花數還叫“自戀數”

[Python3 練習] 004 水仙花數