ID花花花 发表于 2020-8-26 21:18:12

不好意思,我又来了 跪求大佬解惑

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
根据这个题目编程
下面是小甲鱼老师的答案,有两个地方不懂
弱弱的问一句,为什么你们发帖子 程序是有表格的一行一行的 我怎么不行

x = 7
i = 1
flag = 0#这里flag=0是什么意思?有什么用的?

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
      flag = 1#这里flag怎么又=1了
    else:
      x = 7* (i+1) #根据题意,x一定是7的倍数,所以每次乘以7
    i += 1

if flag == 1:#这里是什么意思
    print('阶梯数是: ', x)             #“,x” 是什么作用 程序也不显示x呀?
else:
    print('在程序限定范围内找不到答案!')

疾风怪盗 发表于 2020-8-26 21:24:11

x = 7
i = 1
flag = 0#这里flag=0是什么意思?有什么用的?
#初始变量,赋值为0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
      #这里把变量X做了判断
      flag = 1#这里flag怎么又=1了
      #如果X符合了判断,把flag变量赋值为1
    else:#不符合判断的,继续下面的运算
      x = 7* (i+1) #根据题意,x一定是7的倍数,所以每次乘以7
    i += 1#计数用的,防止死循环,也就是循环100次的意思吧

if flag == 1:#这里是什么意思,如果上面flag赋值了1,也就是x符合判断条件,就输出
    print('阶梯数是: ', x)             #“,x” 是什么作用 程序也不显示x呀?
    #x是变量,输出了内容,我这边打印出来结果是119,就是x
else:
    print('在程序限定范围内找不到答案!')

回复框上边,有个<>的标记,就是输入代码用的,会显示代码格式

ID花花花 发表于 2020-8-26 21:30:45

疾风怪盗 发表于 2020-8-26 21:24
回复框上边,有个的标记,就是输入代码用的,会显示代码格式

哦哦 下次也可以了哈哈谢谢

开心超仁 发表于 2020-8-26 21:34:02

flag=0是给这个变量一个初始值,后面在if判断里用的时候给他赋值,要是没有这个应该会说flag未定义

这个flag=1就是把1赋值给flag,他所在的这个if判断的条件就是题目说的条件,当这些条件都满足了,就得出答案了,所以这个flag在这应该是目标的意思,但flag不是代表目标的值,而是相当于一个布尔值True或False,代表现在的x是不是答案,如果现在的x满足那些条件,就把这个flag设为1,不满足就把x下一个可能的结果—也就是(i+1)*7赋值上去,直到while i<=100不成立,也就是大于100

然后进入第二个if循环,flag==1就是flag的值为1的意思,Python里==是表示等于,=是表示赋值。现在判断这个flag有没有变成1,有证明目标找到了,没有(还是0)证明范围里没有答案
有就输出答案,没有就说没有。    这个print('阶梯数是: ', x)就是打印

阶梯数是:[和](x现在的值)

程序不显示x但是应该输出答案是几,或者没有
-----------------------------------------------------------------
发代码看小甲鱼的这篇文章https://fishc.com.cn/thread-52272-1-1.html{:10_332:}

ID花花花 发表于 2020-8-26 21:41:45

开心超仁 发表于 2020-8-26 21:34
flag=0是给这个变量一个初始值,后面在if判断里用的时候给他赋值,要是没有这个应该会说flag未定义

这个 ...

懂了懂了 感谢

开心超仁 发表于 2020-8-26 21:45:56

ID花花花 发表于 2020-8-26 21:41
懂了懂了 感谢

没事一起加油{:10_257:}
页: [1]
查看完整版本: 不好意思,我又来了 跪求大佬解惑