python水仙花数的编程讲解_Python实战精选:水仙花数

本文介绍了如何通过编程找出所有三位水仙花数,即各位数字立方和等于该数本身的数。首先,解析业务问题,理解水仙花数的概念,然后分解编程技术问题,涉及对for和if的运用。通过分析153作为水仙花数的例子,阐述如何获取一个数的百位、十位和个位,并用Python实现循环遍历100到999之间的数字,判断是否为水仙花数。最后,强调了解题思路的重要性,鼓励读者多加练习。
摘要由CSDN通过智能技术生成

知识点:

1 什么是水仙花数

2 分析问题时,将业务问题和编程问题分开考虑6e78df3263675f6620ff01a77da92e21bc816b05.jpg

初学编程时,总觉得编程就是很难。为什么教材上就讲了那么几个知识点,我看懂了,但是一看到课后的题目简直就傻了眼,动不了手。我相信不只有我一个人是这样的。本次我们来看看这样一道Python实战题:

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

短短两行文字后,不会的人就是不会!究其原因,还是需要做分解。遇到编程的问题,要分业务问题和编程技术问题。此题中业务问题就是“水仙花数”的数学问题,另外考虑的编程技术就是对for和if的熟悉程度。

题目分析:

1.看到153是一个“水仙花数”,这就是一个突破口!如何验证,需要找到这个数的百位、十位和个位。

使用Python来获取:

百位a = 153 // 100 = 1

这里使用的是整除(//),整除以后的结果直接将小数点后直接抹去。

十位b = (153 - a*100) // 10 = 53 // 10 = 5

个位c = 153 % 10

个位数直接使用求模运算。

2.核心公式就是判断 153=1的三次方+5的三次方+3的三次方

if 153 == a * a * a + b * b * b + c * c * c:

3.总不能只拿153做判断吧,要一个数一个数的去尝试。多少比较合适呢?题目说了,是三位数,100到999就是三位数。

for i in range(100,1000):

注意range(100,1000)是包含100,但不包含1000的。

当我们做完了分析后,好多同学还是会说,我不会编程呀!对于这样的同学,我们要说的就是:“思路是对的,就差一小步!编程是实现方式,业务思维熟练起来后真的就只剩下体力劳动了。”

想清楚了分析,接下来就是使用编程技术进行实现了。for i in range(100,1000):

#百位

a = i//100

#十位

b = (i - a * 100) // 10

#个位

c = i%10

if i == a **3 + b** 3+ c**3:

print(i)

打印结果是:153,370,371,407。

以上代码还是想不出来的,多多练习吧!必要时,手抄几份强调记忆,在实际开发中,求水仙花数的编程少之又少,但本题的解题思路在开发中又是经常会遇见的!

小结

1 如何求一个数的百位数、十位数、个位数。

2 使用循环,穷举范围内的数字进行比较得到最终答案

如果文字看起来繁琐,可以尝试看看视频哦!

更多学习视频,请关注公众号“景彤少儿编程”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值