|
|
发表于 2016-9-22 12:47:15
|
显示全部楼层
本帖最后由 leander 于 2016-9-22 12:50 编辑
x = 7
i = 1
flag = 0
while i <= 100: #由于判定条件是i <= 100,所以会执行到i > 100为止
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5): #这个IF和下面的else属于while的循环体
flag = 1 #给flag赋值,是为了在while循环结束后选择输出
else: #这个else和上面的IF属于while的循环体
x = 7 * (i+1) #对“X”重新赋值
i += 1
if flag == 1: #flag的作用是用来做判断选择输出的。
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
if可以单独使用,else必须和if配合使用(我记得是),else会和向上最近的if配对必须是同一个缩进,不会管下面的if,
flag = 1,是为了在while循环结束后对输出内容进行选择,如果没有这个表达式做判断,那么再判断输出的时候,if的判断条件要写成(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5),这样就会加大程序的运行时间。
是的,这个程序会在找到阶梯数之后会继续执行,必定执行100次,因为while的判断条件是 i <= 100
按照题目的意思,是要找出这个最小的阶梯数,在使用者角度那么这个程序是有BUG的
找到到该阶梯数之后,理应输出该数字,并结束程序
我对程序做了优化,
x = 7
i = 1
flag = 0
while i <= 100 and flag == 0: #增加判断条件,使得第一个if执行后就退出循环
print (i) #记录进入多少次循环,这个可以不要,那就更快
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1 #要退出while循环可以在这个表达式下面加break也可以跳出循环,如果加break的话,while的循环条件可以改成i <= 100
else:
x = 7 * (i) #对“X”重新赋值
i += 1
if flag == 1: #flag的作用是用来做判断选择输出的。
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
想知道一个while循环做执行多少次,可以像我改的那样。这样在测试的时候就能明确循环被执行多少次
还有就是700以内不只一个阶梯数。 |
|