|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大佬们 ><
x = 7
i = 1
flag = 0
while i <= 100:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1
else:
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
例如这个,只要flag == 1了,即使while的运行次数 i 没有超过100,
程序也会执行while之后的命令,执行完后就停止吗?
不会停止,你在你循环代码下放个 print(i) 测试打印结果看看,就知道是什么情况了:
参考代码:- x = 7
- i = 1
- flag = 0
- while i <= 100:
- print(i)
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
- flag = 1
- else:
- x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
- i += 1
- if flag == 1:
- print('阶梯数是:', x)
- else:
- print('在程序限定的范围内找不到答案!')
复制代码
因为只要你满足一次 if 条件,那么 else 的代码就不会被执行,所以只要满足一次条件
那么 x 的值就不会再被改变了,所以下次循环还是满足 if 条件,一直这样下去,直到循环结束
这个代码可以小优化下,去掉多余的 flag 判断:
- x = 7
- i = 1
- while i <= 100:
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
- print(x)
- x = 7 * (i+1)
- i += 1
复制代码
这样打印的结果为:
|
|