鱼C论坛

 找回密码
 立即注册
查看: 2395|回复: 2

[已解决]请大佬帮助

[复制链接]
发表于 2021-3-9 21:24:19 | 显示全部楼层 |阅读模式

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

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

x
题目是:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。求阶梯数至少为多少?
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('在程序限定的范围内找不到答案!')
这里flag = 0,代表什么。 然后flag =1.又代表什么?还有后面为什么不写(x%7==0)了?
新手上路,恳请大神百忙之中帮忙解答
最佳答案
2021-3-9 22:51:16
本帖最后由 Daniel_Zhang 于 2021-3-13 14:16 编辑

flag 英文里面是什么意思?旗帜

flag 相当于一个旗帜,找到了,就是 1,没找到就是 0

1 True, 0 False

默认是没找到的,所以是 0 也就是 False

然后之所以不写 x%7==0,你注意看下面的 else

x = 7 * (i+1) 这个就用来持续走下去,持续寻找目标台阶

因为本来就是 7 步 一走,最后写不写 x%7==0 都是无所谓的,必定会成立

不写反而还省了事儿,无论如何你都得要 x = 7 * (i+1) 这一行,因为你压根不需要去检查除了 7 的倍数以外的阶梯。无论如何,除了 7 的倍数的 阶梯数,其他的阶梯都不可能满足 x%7==0 的条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-9 21:32:48 | 显示全部楼层
flag=0
只是为了制造这个变量
flag就是起到一个中间商的作用
当flag==1时使他在while外面打印
如果没有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):
        print('阶梯数是:', x)
    else:
        x = 7 * (i+1)
    i += 1

直接输入就会打印很多重复结果

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

使用道具 举报

发表于 2021-3-9 22:51:16 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Daniel_Zhang 于 2021-3-13 14:16 编辑

flag 英文里面是什么意思?旗帜

flag 相当于一个旗帜,找到了,就是 1,没找到就是 0

1 True, 0 False

默认是没找到的,所以是 0 也就是 False

然后之所以不写 x%7==0,你注意看下面的 else

x = 7 * (i+1) 这个就用来持续走下去,持续寻找目标台阶

因为本来就是 7 步 一走,最后写不写 x%7==0 都是无所谓的,必定会成立

不写反而还省了事儿,无论如何你都得要 x = 7 * (i+1) 这一行,因为你压根不需要去检查除了 7 的倍数以外的阶梯。无论如何,除了 7 的倍数的 阶梯数,其他的阶梯都不可能满足 x%7==0 的条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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