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