python学习(三)之三位水仙花数

  前几天,学完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

下面是我的代码:

1 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))

猜你喜欢

转载自www.cnblogs.com/m-e-n-g/p/12451512.html