鱼C论坛

 找回密码
 立即注册
查看: 844|回复: 8

第9讲 小问题

[复制链接]
发表于 2019-5-27 16:28:48 | 显示全部楼层 |阅读模式

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

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

x
第九讲动动手第一题:
1. 编写一个程序,求 100~999 之间的所有水仙花数。

我跟答案的做法不同
我的做法是
for i in range(100,1000):
    for unit in range(0,9):
        for ten in range(0,9):
            for hundred in range(1,9):
                i =unit + ten*10 + hundred*100
                if unit**3+ ten**3+ hundred**3 == i:
                    print(i)

但是运行程序是153, 370, 371, 407这四个数重复无数遍。请问我该怎么改才能让结论只打一遍
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-27 16:39:26 | 显示全部楼层
这句去掉for i in range(100,1000):
另range是(0, 10)不是(0, 9)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-5-27 16:41:13 From FishC Mobile | 显示全部楼层
跳出循环,你这好比死循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-27 16:50:52 | 显示全部楼层
本帖最后由 四点好 于 2019-5-27 16:54 编辑

应该是打印了900遍,输出打印了3600次。你把第一行代码删掉就可以了。第一行代码是多余的。让你重复执行了后面的代码900次。
  1. for unit in range(10):
  2.         for ten in range(10):
  3.             for hundred in range(1,10):
  4.                 i =unit + ten*10 + hundred*100
  5.                 if unit**3+ ten**3+ hundred**3 == i:
  6.                     print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-27 17:02:11 | 显示全部楼层
苏沫儿 发表于 2019-5-27 16:41
跳出循环,你这好比死循环

我试过加进去一个break,但是也不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-27 17:04:18 | 显示全部楼层
四点好 发表于 2019-5-27 16:50
应该是打印了900遍,输出打印了3600次。你把第一行代码删掉就可以了。第一行代码是多余的。让你重复执行了 ...

为什么不能加for i in range(100,1000)呢,我的原意是 i 就是那些水仙花数。我加上这个的意思是怎么错的呀??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-27 17:05:34 | 显示全部楼层
冬雪雪冬 发表于 2019-5-27 16:39
这句去掉for i in range(100,1000):
另range是(0, 10)不是(0, 9)

为什么不能加for i in range(100,1000)呢,我的原意是 i 就是那些水仙花数。我加上这个的意思是怎么错的呀??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-27 17:07:18 | 显示全部楼层
    for unit in range(0,9):
        for ten in range(0,9):
            for hundred in range(1,9):
这3行代码就是拼成100~999的数字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-27 17:10:16 | 显示全部楼层
小笨蛋学Python 发表于 2019-5-27 17:04
为什么不能加for i in range(100,1000)呢,我的原意是 i 就是那些水仙花数。我加上这个的意思是怎么错的 ...

你那个循环的i跟你里面的赋值i不是一个了,你可以把那个循环的i换成另外任何字母,输出应该都是一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 12:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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