看到爱因斯坦就慌,求助
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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('在程序限定的范围内找不到答案!')
求问:
1.flag什么意思?有什么作用?flag==1的作用?
2.i=1 是指台阶2-7阶的递增数么? 1,flag用于标记是否找到答案
2,因为0不可能是答案,所以用1 本帖最后由 sunrise085 于 2020-3-20 17:16 编辑
flag就是一个标记而已,具体怎么定义完全由你决定,这段程序中设定flag为0表示没找到,flag为1表示找到了。你完全可以设定flag为'haha'表示没找到,flag为'hehe'表示找到了。
x = 7# 初始台阶数为7
i = 1#循环初始值
flag = 0#标记,flag为0不是没有找到答案,当找到答案的时候修改flag为1(当然名字自己随便取,标记的含义也是自己设定)
while i <= 100:#循环100次,若还是没找到就不找了
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):#台阶数已经是7的倍数了,若符合这几个条件则是要找的阶梯数
flag = 1#符合条件表示找到了,设计标记flag为1,表示找到了
else:#若是不符合条件,增加阶梯数,每次增加7个台阶
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1#每次循环,i=i+1
if flag == 1:#标记为1表示找到了
print('阶梯数是:', x)
else:#标记不为1表示没找到
print('在程序限定的范围内找不到答案!')
页:
[1]