注册 登录
Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第八章: Python数据类型与运算 > 8.4节: 程序实战-计算水仙花数

8.4节: 程序实战-计算水仙花数

薯条老师 2022-11-28 14:11:10 26231 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

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和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:


欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录