鱼C论坛

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

[已解决]麻烦解释一下这个代码 我自己看不懂 = =! 谢谢

[复制链接]
发表于 2020-7-1 18:22:53 | 显示全部楼层 |阅读模式

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

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

x
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
        flag = 1

    else:
        x = 7 * (i+1)

    i += 1

if flag == 1:
    print('台阶数是: ',x)

else:
    print('在程序范围内未找到答案!')
   




这个是python第六讲的题      谢谢
最佳答案
2020-7-1 18:29:39



看注释吧,哪里看不懂就问哈~:

x = 7   # 因为题目说了 阶梯一定会被 7 整除 所以阶梯一定是 7 的倍数,则设置从 7 开始
i = 1   # 这个只是初始化要循环判断的次数
flag = 0   # 这个用来判断最终是否有没找出 阶梯

while i <= 100:  # 判断100次以内是否有爱因斯坦阶梯
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):  
        # 根据题意 除以2要剩余 1阶,除以3要剩余 2阶,除以5要剩余 4阶梯,除以6要剩余 5阶
        # 如果以上条件都满足,说明是爱因斯坦阶梯
        
        flag = 1  # 讲判断条件设置为 1 表示在范围内找到了 爱因斯坦阶梯

    else: # 如果之前的阶梯不是爱因斯坦阶梯,那么就乘以 7,因为题意一定会被 7 整除,那么爱因斯坦阶梯一定是 7 的倍数
        x = 7 * (i+1) 

    i += 1 # 记录循环次数 +1

if flag == 1:  # 判断是否有爱因斯坦阶梯
    print('台阶数是: ',x)
else:     # 反之在 100 次 以内找不到爱因斯坦阶梯
    print('在程序范围内未找到答案!')




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-1 18:27:36 | 显示全部楼层
==是判断是否相等的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 18:29:39 | 显示全部楼层    本楼为最佳答案   



看注释吧,哪里看不懂就问哈~:

x = 7   # 因为题目说了 阶梯一定会被 7 整除 所以阶梯一定是 7 的倍数,则设置从 7 开始
i = 1   # 这个只是初始化要循环判断的次数
flag = 0   # 这个用来判断最终是否有没找出 阶梯

while i <= 100:  # 判断100次以内是否有爱因斯坦阶梯
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):  
        # 根据题意 除以2要剩余 1阶,除以3要剩余 2阶,除以5要剩余 4阶梯,除以6要剩余 5阶
        # 如果以上条件都满足,说明是爱因斯坦阶梯
        
        flag = 1  # 讲判断条件设置为 1 表示在范围内找到了 爱因斯坦阶梯

    else: # 如果之前的阶梯不是爱因斯坦阶梯,那么就乘以 7,因为题意一定会被 7 整除,那么爱因斯坦阶梯一定是 7 的倍数
        x = 7 * (i+1) 

    i += 1 # 记录循环次数 +1

if flag == 1:  # 判断是否有爱因斯坦阶梯
    print('台阶数是: ',x)
else:     # 反之在 100 次 以内找不到爱因斯坦阶梯
    print('在程序范围内未找到答案!')




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

使用道具 举报

发表于 2020-7-1 18:35:54 | 显示全部楼层
qiuyouzhi 发表于 2020-7-1 18:27
==是判断是否相等的啊

这是个表情
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 18:43:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 18:57:15 | 显示全部楼层

=.=  这是个表情。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 19:00:49 | 显示全部楼层
heidern0612 发表于 2020-7-1 18:57
=.=  这是个表情。

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

使用道具 举报

发表于 2020-7-1 19:27:46 | 显示全部楼层
解释一下:
x等于7
i等于1
flag等于0
i小于等于100的时候
      如果 x取余2等于1并且x取余3等于2并且x取余5等于4并且x取余6等于5的话
      flag等于1
      否则,x等于7乘以(i+1)
      i加等于1
如果flag等于1的话:
    打印:台阶数是:x
否则:
    打印:在程序范围内未找到答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 19:32:48 | 显示全部楼层
405794672 发表于 2020-7-1 19:27
解释一下:
x等于7
i等于1

然后,这个代码肯定是有问题的。我看到时就想到了。因为在100次以内,你不知道符合条件的数有多少。万一,10次以内找到了,然后,程序什么措施都没有,然后继续,走完这100次。然后,得出的台阶只是那个最接近100次的。倘若你把100改为1000呢?其它的台阶统统不要了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 21:11:17 | 显示全部楼层


大佬...你这样会没朋友的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 08:04:43 | 显示全部楼层
yhhpf 发表于 2020-7-1 21:11
大佬...你这样会没朋友的...

有道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 10:36:07 | 显示全部楼层
楼歪了。。。哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 04:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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