python第六讲课后-爱因斯坦难题 求助
题目:爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
请问flag变量在上面代码中是用来做什么的?{:5_94:} flag是标志位,当测试到的数值满足“若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶”时置“1”,说明找到答案了,随即输出结果 flag 就是一个标志,一开始初始化为 0。当程序找到阶梯数时将 flag 设定为 1。最后判断 flag 的值是否为 1,为 1 代表已经找到了阶梯数。 请问 i = i + 1 为什么不能放到 else 条件语句中呢,谢谢 代码:输出结果:阶梯数是:119
页:
[1]