第006讲爱因斯坦的阶梯求解循环时的一个疑问
我在参考小甲鱼的代码后,写了下述代码,不同之处在于while后面的条件我写的是x <= 200,小甲鱼的参考答案中是i <= 100。奇怪的是我的代码运行后是空白页面,没报错也没反应,想知道我的思路出了什么问题,肯定大神赐教!x=7
i=1
flag=0
while x <= 200:
if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5) and (x%7==0):
flag=1
else:
x=7*(i+1)
i += 1
if flag==1:
print('阶梯数为',x)
else:
print('目前指定范围无此阶梯数')
符合条件之后就要跳出循环了:
x=7
i=1
flag=0
while x <= 200:
if (x%2==1) and (x%3==2) and (x%5==4) and (x%6==5) and (x%7==0):
flag=1
break
else:
x=7*(i+1)
i += 1
if flag==1:
print('阶梯数为',x)
else:
print('目前指定范围无此阶梯数') 当 x 符合要求时执行 if 下面的内容。if 中没有改变 x,所以 x 永远不会 <= 200 。
如果硬要这样就加上一个 break ,表示一找到符合条件的数就跳出循环。代码:
x = 7
i = 1
flag = 0
while x <= 200:
if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5) and (x % 7 == 0):
flag = 1
break
else:
x = 7 * (i + 1)
i += 1
if flag == 1:
print('阶梯数为', x)
else:
print('目前指定范围无此阶梯数') qiuyouzhi 发表于 2020-3-6 11:19
符合条件之后就要跳出循环了:
好的,明白了,谢谢你! zltzlt 发表于 2020-3-6 11:20
当 x 符合要求时执行 if 下面的内容。if 中没有改变 x,所以 x 永远不会
好的,非常感谢! zltzlt 发表于 2020-3-6 11:20
当 x 符合要求时执行 if 下面的内容。if 中没有改变 x,所以 x 永远不会
新人有点懵。请问为什么一开始会想到用100这个值而不是其他呢?依据是什么呢? Miss_Choco 发表于 2020-4-29 17:44
新人有点懵。请问为什么一开始会想到用100这个值而不是其他呢?依据是什么呢?
100 不是固定的,可以换成其他的,比如 50 、200,只是不要低于 阶梯数 / 7 就行了(不然在指定的范围内找不到阶梯数)
页:
[1]