请大佬帮助
题目是:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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)了?
新手上路,恳请大神百忙之中帮忙解答
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
直接输入就会打印很多重复结果
本帖最后由 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 的条件
页:
[1]