鱼C论坛

 找回密码
 立即注册
查看: 1016|回复: 1

[已解决]新手求助,代码运行不报错也不出结果?

[复制链接]
发表于 2020-1-20 02:11:35 | 显示全部楼层 |阅读模式

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

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

x
是课后练习题的阶梯那一道题,代码如下:
x=1
while not((x%2 == 1) and (x%3 == 2) and (x%5 == 4)and (x%6==5)):
    x*=7
print("阶梯数为"+str(x))
是电脑太渣了吗?明明119就是答案,难道连这么简单的代码都运算不了?
最佳答案
2020-1-20 03:45:17
进入死循环了,因为你的 x *= 7 刚好跳过了可能的数
第一次循环 x = 1,符合not条件,执行 x *= 7,即 x = 7
第二次循环 x = 7,符合not条件,执行 x *= 7,即 x = 49
第二次循环 x = 49,符合not条件,执行 x *= 7,即 x = 343
无限循环,找不到合适的数
……

可以改成这样:
x=1
while not((x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5)):
    x += 1
print("阶梯数为"+str(x))
第一个符合条件的结果为 29

我发现你漏写(x % 4 == 3),(不知道你是有意还是无意,我没看过题)
加上去以后第一个符合条件的结果是 59
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-20 03:45:17 | 显示全部楼层    本楼为最佳答案   
进入死循环了,因为你的 x *= 7 刚好跳过了可能的数
第一次循环 x = 1,符合not条件,执行 x *= 7,即 x = 7
第二次循环 x = 7,符合not条件,执行 x *= 7,即 x = 49
第二次循环 x = 49,符合not条件,执行 x *= 7,即 x = 343
无限循环,找不到合适的数
……

可以改成这样:
x=1
while not((x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5)):
    x += 1
print("阶梯数为"+str(x))
第一个符合条件的结果为 29

我发现你漏写(x % 4 == 3),(不知道你是有意还是无意,我没看过题)
加上去以后第一个符合条件的结果是 59
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 04:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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