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))#通过逗号连接符合要求的数字

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐