Python入门教程+项目实战-8.4节: 程序实战-计算水仙花数

目录

8.4.1 何为水仙花数?

8.4.2 输出所有水仙花数

8.4.3 系统学习python


8.4.1 何为水仙花数?

水仙花数是一个大于0的三位数,该数的每位数的三次幂之和等于它本身。

举个简单的例子,153就是一个水仙花数。1的3次幂等于1,5的3次幂等于125,3的3次幂等于27,1+125+27=153, 所以153是个水仙花数。

在理解了水仙花数的基本概念以后,该怎么求出所有的水仙花数呢?算法本身并不难,只需将三位数的每一位取出来,然后计算它们的三次幂,最后相加求和。难点在于如何把三位数的每一位取出来。对于个位数,可让三位数与10求余,结果一定是个位数。为什么呢?因为十位和百位必然能被10整除,所以余数一定是个位数。

十位和百位必然能被10整除,按照这样的原理,我们可以进一步求出十位数: 只需去掉三位数中的个位数,然后再与10求余。

对于十位数,可先与10整除,这样就可以去掉个位数。去掉个位数以后再与10求余,则可得十位数。至于百位数,直接整除100就可以得到百位数。

8.4.2 输出所有水仙花数

在Python中通过range函数可以生成指定范围的整数序列,生成[100, 1000)区间的所有三位数,我们可以这么写:range(100, 1000)。以下为完整的Python代码实现:

Python

"""
@author: 薯条老师
@desc: 输出所有水仙花数
"""

for number in range(100, 1000):
    # 与10求余可得个位数
    a = number % 10
    # 与10整除后再与10求余,可得十位数
    b = number // 10 % 10
    # 直接与100整除,可得百位数
    c = number // 100
    # 最后判断各位数的三次幂之和是否等于本身
    if a**3 + b**3 + c**3 == number:
        print(number)

8.4.3 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习,量化投资。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薯条老师-Python小班培训

土豪,不要走,你的铜板掉地下了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值