鱼C论坛

 找回密码
 立即注册
查看: 2155|回复: 11

[已解决]水仙花题详解

[复制链接]
发表于 2020-3-5 16:35:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for i in range(100,1000):
        sun = 0
        temp = i
        while temp:
                sun = sun +(temp%10)**3
                temp //= 10
        if sun == i:
                print(i)
能详细讲解一下水仙花这道题嘛实在是看不懂,也研究不懂
最佳答案
2020-3-5 16:50:21
for i in range(100,1000):
    sun = 0 # 和
    temp = i # 用于存放i的值
    while temp: # 只要temp不等于0:
        sun = sun +(temp%10)**3 # 求出一位的立方和
        temp //= 10 # temp去掉一位
        if sun == i: # 如果符合条件,就打印
            print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-5 16:45:05 | 显示全部楼层
试数把
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 16:50:21 | 显示全部楼层    本楼为最佳答案   
for i in range(100,1000):
    sun = 0 # 和
    temp = i # 用于存放i的值
    while temp: # 只要temp不等于0:
        sun = sun +(temp%10)**3 # 求出一位的立方和
        temp //= 10 # temp去掉一位
        if sun == i: # 如果符合条件,就打印
            print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-5 17:11:05 | 显示全部楼层
sun = sun +(temp%10)**3 # 求出一位的立方和
        temp //= 10 # temp去掉一位
主要还是这两段不是很懂它这个原理,sun求出来的一位立方和是什么意思,temp的值地板除的意义是什么?
求解谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 17:25:34 | 显示全部楼层
wanxi 发表于 2020-3-5 17:11
sun = sun +(temp%10)**3 # 求出一位的立方和
        temp //= 10 # temp去掉一位
主要还是这两段不是 ...


153除以10等于15余三,而地板除法就是不留余数,也就是15,而15正好是去掉一位的结果
求余数就是求最后一位
还有,不要在自己的帖子里发,要回复我,不然我看不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 18:18:33 | 显示全部楼层
while temp:                                    (当temp=0时,循环结束)
sun = sun +(temp%10)**3         (temp%10是将个位数单独拿出来,然后求立方保存到sun里)
temp //= 10。                            (temp=temp//10是将之前的temp值的个位数去掉,返回一个新的数进行递归,直到把每一个数都单独挑出来计算, temp=0时结束循环,这时sun=每个位数上的数的立方和了)
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 18:19:26 | 显示全部楼层
while temp:                                    (当temp=0时,循环结束)
sun = sun +(temp%10)**3         (temp%10是将个位数单独拿出来,然后求立方保存到sun里)
temp //= 10。                            (temp=temp//10是将之前的temp值的个位数去掉,返回一个新的数进行递归,直到把每一个数都单独挑出来计算, temp=0时结束循环,这时sun=每个位数上的数的立方和了)
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 10:31:36 | 显示全部楼层
"1——100间的水仙花数"
num = 100
while num <=999:
    a = num //100
    b = (num - a*100)//10
    c = (num - a*100 - b*10)

    if a ** 3 + b**3 + c**3==num:
        print(num,a,b,c)
    num=num+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 10:32:07 | 显示全部楼层
我是这样写的  不知道行不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 11:02:04 | 显示全部楼层
qiuyouzhi 发表于 2020-3-5 17:25
153除以10等于15余三,而地板除法就是不留余数,也就是15,而15正好是去掉一位的结果
求余数就是求最 ...

好的谢谢,懂了懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 11:02:55 | 显示全部楼层
837374412 发表于 2020-3-6 10:31
"1——100间的水仙花数"
num = 100
while num

谢谢,这样写我看懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 11:03:08 | 显示全部楼层
wanxi 发表于 2020-3-6 11:02
好的谢谢,懂了懂了

如果有帮助,请设最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 03:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表