一、题目:转载自北京理工大学《python语言与程序设计》,python123平台
三位水仙花数
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
二、问题:
1.问题求解主要是利用计算机思维去遍历,筛选出符合条件的解
2.问题的困难之处在于每个数字之间要有逗号,但最后一个数字后面没有,那么我常用的输出就不ok
解决方法:join()函数
print(i,end=",")
三、代码:两种解决方式
1.第一种转载于https://www.csdn.net/tags/NtDaEg2sNTM2MDItYmxvZwO0O0OO0O0O.html
思路独特之处:在一开始将其当作字符串处理,一位一位取,便省去了寻找每一位的功夫
使用了列表,append()函数,以及join()函数
lst = []
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i:
lst.append(i)
print(','.join(str(i) for i in lst))
2.写一下思路,源代码被我删了,阿门
一开始输入后转成数字,然后取出每一位,取的方法见以下链接
https://blog.csdn.net/weixin_39984982/article/details/109926565?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
后面都和第一种一样