[Python3 练习] 004 水仙花数

寻找水仙花数
本文介绍了如何使用Python编程找出所有三位数的水仙花数,即那些各位数字立方和等于其本身的特殊数字。通过两种不同的算法实现,展示了水仙花数或称自恋数的求解过程。

题目:水仙花数

(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
    • 水仙花数还叫“自恋数”

转载于:https://www.cnblogs.com/yorkyu/p/10353014.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值