鱼C论坛

 找回密码
 立即注册
查看: 3015|回复: 9

求解释水仙花数的程序!

[复制链接]
发表于 2016-12-22 12:54:44 | 显示全部楼层 |阅读模式
2鱼币
QQ截图20161222125247.png
求解答这个水仙花数的程序为什么可以这么写?完全没有看懂....


我自己写出来的水仙花数程序是这样的,然而我知道这肯定比小甲鱼的我程序要呆板....
for i in range(100,1000):
    a = int( i / 100)
    b = int(i/10) -10* a
    c = i - 100* a - 10*b
    if i == a**3 + b**3 + c**3:
        print (i)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-22 12:54:45 | 显示全部楼层
  1. for i in range(100, 1000): #对100-999每一个数字
  2.     sum = 0                #设百位,十位,个位初始立方和为0
  3.     temp = i               #temp = i 用于运算
  4.     while temp:            #如果temp不为0则循环
  5.         sum = sum + (temp%10) ** 3 #temp%10 在三次循环中依次求得个位、十位、百位数字,可以用代入110试一试
  6.         temp //= 10         # 第一次循环剩下百位,十位剩下的数字;第二次循环剩下百位数字
  7.     if sum == i:            #判断水仙花数
  8.         print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-22 14:48:15 | 显示全部楼层
没看懂你问的到底是什么!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-23 00:31:41 | 显示全部楼层
那個水仙花數我也沒有搞懂..同樣學習
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-23 01:27:23 | 显示全部楼层
撇开效率问题。编程的算法跟数学解题一样,可以有各种各样的解法,所以楼主暂时不要太纠结。
看函数看算法,先代入一个数,再慢慢解读下去。
3楼已经解释得非常清楚了,在此也不再啰嗦了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-23 16:30:20 | 显示全部楼层
temp 因为是小于1000的3位数,所以while循环3次,每次利用temp%10得到末位数字,再用temp//=10去掉末位数字。也就是第一次循环时是3位数,第二次是2位数,第三次是1位数。

我想是这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2016-12-23 21:25:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-25 16:26:28 | 显示全部楼层
楼主没看懂主要在于地板除法(\\)和取余数(%)的概念不清楚
鱼老师的程序是通过取余数和地板除法提取数字中的个位十位百位来运算的其实和你的本质上是一样的,只不过通过while函数把程序简洁化了

while temp:            
        sum = sum + (temp%10) ** 3 #temp%10    #以153为例,153%10=3(余数为3,提取了个位数然后进行运算)
        temp //= 10      #153//10=15 //地板除法砍掉小数点后的数字,然后再循环上面一条语句,也就是15%10=5 此时把十位提取进行运算,然后再循环1%10=1 此时百位也被提取,接着1//10=0 结束while循环,此时再返回for循环继续运算下一个数字

评分

参与人数 1鱼币 +2 收起 理由
Little.L + 2 谢谢耐心解答!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-26 09:53:40 | 显示全部楼层

感谢耐心解答!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-6 16:08:07 | 显示全部楼层
我也没看懂学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 14:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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