三位水仙花数_python_好理解_傻瓜都能看懂

今天悦儿姐来教大家怎么找三位水仙花数。题目是这样的:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

这道题目灰常简单,真的,very easy。悦儿姐都有点不想发了,不过因为这是道老题,回回考试都可能会考到它,在这里我就给你们讲讲。

 

 我看网上很多朋友都会把每个数位都设成一个变量,可是悦儿姐看来看去脑子都绕晕了,直接用字符串遍历一下他不香吗?所以,就有了本人原创的另一种简单到爆的解法。

 

def sxh(n):  # 注意 n是字符串类型
    s=0
    for i in n:  # 遍历 分别取数字的百位、十位、个位
        s+=int(i)**3  # 求立方 然后加它
    return s
for x in range(100,1000):  # 比较low 别嫌弃
    y=sxh(str(x))
    if y == x:  # 判断
        print(x)  
# 到此结束

🆗?另外让悦儿来给你们科普一些小知识:

严格来说3位数的3次幂数才称为水仙花数。位数更多的有其他相应的称呼,具体如下:

四位的叫四叶玫瑰数共有3个:1634,8208,9474;

五位的叫五角星数共有3个:54748,92727,93084;

六位的叫六合数只有1个:548834;

七位的叫北斗七星数共有4个:1741725,4210818,9800817,9926315;

八位的叫八仙数共有3个:24678050,24678051,88593477。

有朋友问我21位水仙花数怎么求,哈哈,本孩子还在努力,如果单纯的把上面的程序改编,我可以负责的告诉你,你一个中午都守着吧,老费时间了。

好啦就到这里啦,下期再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值