python学习之三位水仙花数

Phoebe ·
更新时间:2024-09-20
· 829 次阅读

前几天,学完python的数值类型之后,老师留了几道练习题,里面就有三位水仙花数的计算这道题。虽然难度不大,但的确很有趣。下面是对于这道题我的答案,答案已通过验证。
三位水仙花数的计算
描述
“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 请按照从小到大的顺序输出所有的3位水仙花数,请用一个“逗号+空格”分隔输出结果。  
思路:刚开始看到这道题,我就想到了必须把这个三位数的个位、十位和百位分开。那怎么分开呢?这里我们可以用python的取余符号%和取整除符号//这两个符号进行。比如一个三位数123,123//100可以得到百位数1,123%10=3这是个位数,十位数需要计算两次,123//10%10就可以得到十位数2了。  
计算过程有了,但提交还是不对,哪地方错了呢?仔细看了下题,原来这道题的输出结果要求是“逗号+空格”,这个不怎么好实现,还好这里我用了列表里的函数操作,最终代码提交成功。str.join(i),在变量i除最后一个元素外加str。
下面是我的代码:

f=[]#定义了一个列表 2 for i in range(100,1000): 3 a=i//100 #百位数 4 b=i//10%10 5 c=i%10 6 if a**3+b**3+c**3 == i: 7 f.append(i)#存入列表 8 print(', '.join(str(i) for i in f))
作者:孟师弟



python学习 水仙花数 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号