本帖最后由 jackz007 于 2021-1-9 23:15 编辑
- x = 7 # 枚举变量 x 赋初值 7
- i = 1 # 循环变量 i 赋初值 1
- flag = 0 # 找到标志初始化为 0 值
- while i <= 100: # 开始循环
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5): # 判断 x 是否符合要求
- flag = 1 # 是,置找到标志为 1
- else: # 否则
- x = 7 * (i + 1) # 生成下一个 x 值
- i += 1 # 循环变量 i 的数值加 1
- if flag == 1: # 根据 flag 的值判断是否有找到这个 x
- print('阶梯数是:', x)
- else:
- print('在程序限定的范围内找不到答案!')
复制代码
这个代码在开始循环前,先设置 x 的初始值为 7,i 为 1,找到标志 flag 为 0,并设置循环次数为 100 次,进入循环后,先判断 x 是否符合条件,如果不符合,那就生成新的 x 值,继续循环;如果符合,就置 flag = 1,继续循环,每次循环,循环变量 i 的值就加 1,当 i 等于 101 的时候,循环就到达终点。由于找到符合条件的 x 时,x 的值未被改变,所以,在后续的循环中,无论 i 值怎么改变,x 的值会始终保持不变(始终在 if 中转,不会执行到 else 中),直到循环结束。循环结束后,如果 flag 的值是 1,说明是找到了,如果维持原始值 0,那就说明没找到。
改写一下更容易理解
- c = 0
- for x in range(7 , 701 , 7):
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
- print('阶梯数是:', x)
- c += 1
- if c == 0:
- print('在程序限定的范围内找不到答案!')
复制代码
运行实况
- D:\00.Excise\Python>python x.py
- 阶梯数是: 119
- 阶梯数是: 329
- 阶梯数是: 539
- D:\00.Excise\Python>
复制代码
运行这个代码你会发现,其实,在指定的数值范围内,符合条件的阶梯数其实不止一个。