|
|
发表于 2019-7-20 15:44:02
|
显示全部楼层
1. 首先你问flag的作用,这里的flag是用作一个触发(是否在规定范围找见这个数)的东西,也就是你找到这个数flag就为真,找不着就为假,为后面代码的if提供条件的一个东西
2.解释一下代码:这个题是求的数一定为7的倍数,在题目中不管说了他除了什么最后都要被7整除,我们就可以以7的倍数寻找这个数while里的i是让每次都加7,只不过写成了x = x *(i+1)你可以理解为第一次检测7是不是你要的这个数,不是就在加7,然后看14是不是你要的这个数,当你的这个数满足if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):就意味着你找见了,此时flag就为真就找见这个数,然后到if flag == 1:
print('阶梯数是:', x)输出这个数,这个程序就结束了
3.你修改的代码是有问题的, print('阶梯数是:', x)是不能放在if里面的,你可以自己试着看一下结果,会出现很多次重复打印,这是为什么呢,你可以看,我们已经知道,119就是我们找的那个数,119/7=17,也就是找了17次找出这个数,但是你的while循环缺没有停止,也就是你的代码现在变成了这样- i = 17
- while i<=100:
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
- print('阶梯数是:', x)
复制代码
又因为你的x这时候一直是119一直符合if的条件,然后就一直打印 : 阶梯数是:199 写完了就这样 |
|