代码被写复杂了,这样写还会有那么多问题吗?
flag = 0
for x in range(7 , 701 , 7):
if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5):
flag += 1
print('阶梯数是:', x)
if flag == 0:
print('在程序限定的范围内找不到答案!')
flag 是一个标志,用来指示是否找到符合条件的数。flag 先被初始化为 0,在循环中,每找到一个符合条件的数就加 1。当循环结束的时候,如果 flag 仍然还是 0,那就说明没有找到符合条件的数,否则,当然是找到了。 你输出的是x不是i
100只是一个限制,题目要求输出满足要求的最小值,而我们确定i=100以内存在答案,所以才写的100,你改成一百万也是一样输出最小值
flag只是立个标志,比如说这个题,达到了所求的标准,这个flag就开了(重新赋值这个变量为1)。
反之的话,flag就是个默认的0..
你可以把flag这个变量想象成一个开关,屋子亮了(达到所求),开关就要变成开的(重新复制为1)。
反之屋子黑的(没求到),开关默认就是关的。 ja258736874 发表于 2020-12-23 17:58
感谢您对代码的简化,但是我必须搞清楚这些最基本的东西,才能打好基础,毕竟是从0开始学习的
学习是要循序渐进,越是初学,越要从简单、典型的例子入手,相同功能的程序,代码越简单,就越容易理解,等你把握了代码的总体脉络,再去看复杂的,可以收到事半功倍的效果。 ja258736874 发表于 2020-12-23 21:44
我连flag是啥还没搞清楚,for、range也不知道,这是小甲鱼的课后作业答案,就是不太理解,所以才发帖子求 ...
不一定非要等到从书上看到了才学,在本例中,至少你应该知道 x 是整型数吧,不知道 for、range 那就把 x 值都打印出来
for x in range(7 , 701 , 7) :
print(x)
是怎么回事一目了然。
1.while i <= 100 这个条件只代表循环100次,和结果并无直接关系。
2.print(x) 输出的119,仅代表最后一个被计算出来的阶梯数,119之前的全部被覆盖掉。
3. i+=1 主要用于控制循环的次数。
4. flag 只是一个标识,仅仅只作用于表示是否找到了符合条件的阶梯数。
页:
[1]