本帖最后由 thexiosi 于 2017-5-25 14:00 编辑
我先谈下自己对这道题的理解(见下面的代码):
“ if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):”等效于 “有一个长台阶,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;若每步上7阶,最后不剩。”这个if是核心语句。
小甲鱼老师的算法比我的好:(1)根据题意,仅计算7的倍数 x=7 (2) 设定了运算范围,避免了可能的bug
如果下面的代码思路看懂了,再看小甲鱼老师的代码,就会容易理解思路了。
x = 1
flag = 0
while flag == 0:
if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
flag = 1
else:
x = x + 1
print("台阶数是",x)
补充:
flag = 0是while语句的循环条件,当x满足条件后,flag置为1,while循环结束
x=1 x是台阶数
可能说的不是很清楚,不好意思