Python求三位水仙花数

这篇博客介绍了如何用两种方法用Python找到三位数的水仙花数。第一种方法是从数学角度出发,通过取整操作获取每一位数字并计算三次方的和;第二种方法则是将数字转换为字符串,逐位计算并判断是否满足水仙花数条件。
摘要由CSDN通过智能技术生成

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥都鼓捣的小yao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值