Python求三位水仙花数
简介
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
基础掌握
Python str() 函数
https://www.runoob.com/python/python-func-str.html
str() 函数将对象转化为适于人阅读的形式。(转成字符串类型)
Python join()方法
https://www.runoob.com/python/att-string-join.html
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
#输出 a-b-c
Python List append()方法
https://www.runoob.com/python/att-list-append.html
append() 方法用于在列表末尾添加新的对象。
aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList;
#Updated List : [123, 'xyz', 'zara', 'abc', 2009]
解决问题代码
方法一:数学角度思考(可以先拷贝运行一下,便于理解)
i = 100
while i < 1000:
b = i // 100#取百位
s = i % 100 // 10#取十位
g = i % 10#取个位
if b ** 3 + s ** 3 + g ** 3 == i:
print(b,s,g,i)
i = i + 1
方法二:编程角度思考
s=list()
for i in range(100,1000):
a=str(i)#将数字变成字符串使得能起遍历
if pow(eval(a[0]),3)+pow(eval(a[1]),3)+pow(eval(a[2]),3)==i:#取百十个分位
s.append(a)#加入到列表当中
print(','.join(s))#通过逗号连接符合要求的数字