ja258736874 发表于 2020-12-23 17:50:44

jackz007 发表于 2020-12-23 17:55:11

本帖最后由 jackz007 于 2020-12-23 17:59 编辑

      代码被写复杂了,这样写还会有那么多问题吗?
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,那就说明没有找到符合条件的数,否则,当然是找到了。

ja258736874 发表于 2020-12-23 17:58:44

昨非 发表于 2020-12-23 17:58:53

你输出的是x不是i

100只是一个限制,题目要求输出满足要求的最小值,而我们确定i=100以内存在答案,所以才写的100,你改成一百万也是一样输出最小值

flag只是立个标志,比如说这个题,达到了所求的标准,这个flag就开了(重新赋值这个变量为1)。

反之的话,flag就是个默认的0..
你可以把flag这个变量想象成一个开关,屋子亮了(达到所求),开关就要变成开的(重新复制为1)。
反之屋子黑的(没求到),开关默认就是关的。

jackz007 发表于 2020-12-23 18:06:08

ja258736874 发表于 2020-12-23 17:58
感谢您对代码的简化,但是我必须搞清楚这些最基本的东西,才能打好基础,毕竟是从0开始学习的

      学习是要循序渐进,越是初学,越要从简单、典型的例子入手,相同功能的程序,代码越简单,就越容易理解,等你把握了代码的总体脉络,再去看复杂的,可以收到事半功倍的效果。

ja258736874 发表于 2020-12-23 21:44:11

ja258736874 发表于 2020-12-23 21:47:18

jackz007 发表于 2020-12-23 21:49:50

ja258736874 发表于 2020-12-23 21:44
我连flag是啥还没搞清楚,for、range也不知道,这是小甲鱼的课后作业答案,就是不太理解,所以才发帖子求 ...

       不一定非要等到从书上看到了才学,在本例中,至少你应该知道 x 是整型数吧,不知道 for、range 那就把 x 值都打印出来
for x in range(7 , 701 , 7) :
    print(x)
是怎么回事一目了然。
      

z5560636 发表于 2020-12-24 09:45:35

1.while i <= 100   这个条件只代表循环100次,和结果并无直接关系。
2.print(x)   输出的119,仅代表最后一个被计算出来的阶梯数,119之前的全部被覆盖掉。
3. i+=1 主要用于控制循环的次数。
4. flag 只是一个标识,仅仅只作用于表示是否找到了符合条件的阶梯数。

ja258736874 发表于 2020-12-24 21:18:03

ja258736874 发表于 2020-12-24 21:18:53

页: [1]
查看完整版本: 小白求助6讲课后作业!