flag就是一个标记。自己想怎么定义就怎么定义,这个程序里的flag,1表示找到了阶梯数,0表示没有找到阶梯数。
程序有能精简的地方。你的程序不管有没有找到,都会循环100次的。帮你修改了两个版本
第一个版本,只招一个,就不再找了。
- print('--------爱因斯坦阶梯题---------')
- x = 7#x是7的整数倍,假设x为7
- i = 1#每次循环+1,检验
- while i <= 100:#当倍数只加到一百以内时执行以下
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
- #假如上面的条件都成立,直接输出
- print('阶梯数是:',x)
- break #找到了一个,跳出循环
- x = 7 * (i+1)#x加7,查看7的其他倍数
- i += 1#
- else:
- print('找不到答案')#指7的一百倍以内找不到答案
复制代码
第二个版本,在给定的范围(这个程序是700以内)内找出所有的阶梯数
- print('--------爱因斯坦阶梯题---------')
- x = 7 #x是7的整数倍,假设x为7
- i = 1 #每次循环+1,检验
- flag=True #标记,若找到了,则修改标记为False
- while i <= 100:#当倍数只加到一百以内时执行以下
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
- #假如上面的条件都成立,直接输出
- print('阶梯数是:',x)
- flag=False #找到了,修改标记为Flase
- x = 7 * (i+1)#x加7,查看7的其他倍数
- i += 1
- if flag: #查看标记,若没找到,标记为True,若找到了,标记为False
- print('找不到答案')#指7的一百倍以内找不到答案
复制代码