米哈伊尔 发表于 2021-1-7 01:10:26

来自006讲动动手题目2的问题

我自己尝试解释鱼老师提供的代码,不知道对错,还有些地方更是没看懂。恳请路过的大佬帮我指点一番

qq1151985918 发表于 2021-1-7 02:04:32

flag=0就是提前准备一个变量,当 flag变成1的时候说明找到了正确的x的值。另外你这个代码在flag=1后边应该少了一个break,还有else后边的注释7*(i+1)并不是7*7+1,i是一个1-100以内的不断循环变化的值,这就是那句i+=1的意思,i+=1等同于i=i+1

笨鸟学飞 发表于 2021-1-7 11:51:35

x = 7

i = 1

# 给是否找到定义一个变量,找到标志为1,未找到标志为0
# 那么初始赋值肯定是未找到,也就是0
flag = 0

while i <= 1000000:# 这里结合后面的i+=1,构成了计次循环,从1循环到100,逐次加1

    if (x%2 == 1) and (x%3 ==2) and (x%5 ==4) and (x%6 == 5):

      flag = 1# 满足条件了,把变量赋值为找到,也就是1

    else:

      x = 7 * (i+1)
      # 如果不满足条件,那就把x再加7,根据题目要求,x永远是7的倍数

    i += 1 # 等同于i = i + 1 ,把i+1的值赋值给i

if flag ==1:# 判断标志是1还是0,就知道是否找到了
    print('阶梯数是:',x)

else:
    print('限定范围未找到')
页: [1]
查看完整版本: 来自006讲动动手题目2的问题