首页 寻找水仙花数
文章
取消

寻找水仙花数

水仙花数是指1个3位的十进制数,其各位数字的立方和等于该数本身。例如:153是水仙花数,因为153 = 1^3 + 5^3 + 3^3 。

求水仙花数。

运算符

1
2
3
4
5
6
for num in range(100, 1000):
    bai = num // 100
    shi = num % 100 // 10
    ge = num % 10
    if ge**3 + shi**3 + bai**3 == num:
        print(num)

内置函数divmod

1
2
3
4
5
for num in range(100, 1000):
    bai, rest = divmod(num, 100)
    shi, ge = divmod(rest, 10)
    if ge**3 + shi**3 + bai**3 == num:
        print(num)

函数式编程+序列解包

1
2
3
4
5
for num in range(100, 1000):
    #这里是序列解包的用法
    bai, shi, ge = map(int, str(num))
    if ge**3 + shi**3 + bai**3 == num:
        print(num)

函数式编程+内置函数

1
2
3
4
for num in range(100, 1000):
    r = map(lambda x:int(x)**3, str(num))
    if sum(r) == num:
        print(num)

运行结果:

153 370 371 407

本文由作者按照 CC BY 4.0 进行授权