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 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师: