[Python3 练习] 004 水仙花数

题目:水仙花数

(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
    • 水仙花数还叫“自恋数”
上一篇:水仙花数(Java版)


下一篇:水仙花数(类型:一级、C++)