鱼C论坛

 找回密码
 立即注册
查看: 685|回复: 5

[已解决]求问 第六讲课后题

[复制链接]
发表于 2018-8-4 12:23:48 | 显示全部楼层 |阅读模式

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

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

x
课后题爱因斯坦的台阶数的问题
为什么程序一开始就说X=7  还有这个i  flag代表什么意思
求大神讲解一下这个程序


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) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
最佳答案
2018-8-4 12:37:57
爱因斯坦曾经提出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩下1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩下4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。
所以答案是7的倍数,所以先赋值一个7,i用来控制循环,每算一次,i就加一,恰好可以用i算出下一个7的倍数,其实flag有没有无所谓,flag如果是0,说明没有符合条件,若是1,说明符合条件,下面判断如果flag是1,打印结果。
大部分赋值往往是为了后面的计算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-4 12:37:57 | 显示全部楼层    本楼为最佳答案   
爱因斯坦曾经提出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩下1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩下4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。
所以答案是7的倍数,所以先赋值一个7,i用来控制循环,每算一次,i就加一,恰好可以用i算出下一个7的倍数,其实flag有没有无所谓,flag如果是0,说明没有符合条件,若是1,说明符合条件,下面判断如果flag是1,打印结果。
大部分赋值往往是为了后面的计算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-4 12:40:53 | 显示全部楼层
因为台阶数是7的倍数,所以只能是0,7,14,21……
i表示1-->100,用来遍历的那个数
flag如果等于0,表示没有发现这个数,如果等于1,表示找到这个数啦

如果程序不用while,可以直接用for遍历
for i in range(7,101)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-4 13:34:30 | 显示全部楼层
陈海平 发表于 2018-8-4 12:40
因为台阶数是7的倍数,所以只能是0,7,14,21……
i表示1-->100,用来遍历的那个数
flag如果等于0,表示没有 ...

for 就是 while i < x: ... i += 1 的包装。

flag 就是旗子,有就举旗。但是这样的写法是很基础的说,在这个寻找范围内找到解,至于有几个解,就不明确了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-6 21:47:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-7 09:01:17 | 显示全部楼层
请问是到101以后才跳出while吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 10:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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