麻烦大佬解释下代码!
课后作业11短路逻辑和运算符
# 由于目标值必须是能被7整除,所以我们将测试每个7的倍数
steps = 7
i = 1
FIND = False
while i < 100:
# 由于测试的都是7的倍数
# 因此只要同时满足除以2余1、除以3余2、除以5余4、除以6余5,就是最终的结果
if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
这里的
steps = 7 * (i + 1)
是为什么? 这段代码的目的是寻找一个数字(阶梯数),满足以下条件:
[*]能被7整除
[*]除以2余1
[*]除以3余2
[*]除以5余4
[*]除以6余5
为了找到这个数,代码首先初始化了一个变量 steps 为7,表示我们要找的阶梯数必须是7的倍数。变量 i 用于迭代,从1开始。变量 FIND 用于标记是否找到了这个数。
在 while 循环中,我们检查当前的 steps 是否满足上述条件。如果满足,我们将 FIND 设置为 True 并跳出循环。否则,我们需要继续寻找下一个7的倍数,即 steps = 7 * (i + 1)。这个表达式用于生成7的下一个倍数,因为 i 是从1开始递增的,所以每次循环,steps 都会更新为7的下一个倍数。
在循环结束后,我们检查 FIND 是否为 True。如果是,说明找到了满足条件的阶梯数,将其打印出来。否则,打印在程序限定的范围内找不到答案。
这里的 steps = 7 * (i + 1) 的目的是生成7的下一个倍数,以继续测试是否满足给定的条件。
页:
[1]