鱼C论坛

 找回密码
 立即注册
查看: 1812|回复: 13

[已解决]求求解惑

[复制链接]
发表于 2020-3-10 12:21:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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)# 这里为什么要+1不懂
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
  还有想问i+=1和i +=1有什么不同
才上6节课有点坚持不了了

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩
最佳答案
2020-3-10 12:54:49
1. flag的赋值:我的理解是命名一个变量需要有一个起始值;
2. flag=1:按照整个程序的理解,flag=0时,没有找到正确解,找到正确解(也就是 if后面的(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5)条件为true)是,flag变为1,这样你就知道你找到正确解了。也就是说flag的值可以用来判断是否找到答案。
3. 因为你的x最开始的值就是7,i=1,x=7*i,所以你后面循环就要i+1。
4. i+=1和i +=1是一样的。
最后,你可以用下面比较简单的一段代码来实现同样的目的:
x = 1
while x<=1000:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and (x%7==0):
        print('阶梯数是:', x)
        break
    else:
        x+=1
但是,这个简单版的代码需要计算机运行119次,你问题里的代码只需要计算机运行100次,如果再加个break,就只需要运行17次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 12:23:46 | 显示全部楼层

x = 7#为什么要赋值不懂??
i = 1#为什么要赋值不懂??
flag = 0#为什么要赋值不懂??

只能从头学。。。没什么好解释的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:27:38 | 显示全部楼层
1,flag是用来标记是否找到那个数的,如果找到就标记为1(True)
2, 因为while不会自动给i+1,所以要在这里加1,又由于答案肯定是7的倍数,所以*7
3,通常都是用+=的,不用太在意=+
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:29:03 | 显示全部楼层
ba21 发表于 2020-3-10 12:23
x = 7#为什么要赋值不懂??
i = 1#为什么要赋值不懂??
flag = 0#为什么要赋值不懂??

很多老师都强调,不要背诵代码
x=7 不就是给x赋值为7  吗  能不懂吗  
不懂得是这个程序的整个流程,逻辑  思想
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 12:31:32 | 显示全部楼层
flag = 0#为什么要赋值不懂?我把代码删除了也试试也行。只是不知道为什么。请能耐心看一下。新手问题好吗。我只是标了红字的那一排有疑惑而已。不带你这实习版主这么打击人的吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 12:38:22 | 显示全部楼层
好吧。可能我表述有问题。
x = 7#根据题目知道赋值7
i = 1# 赋值需求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)# 这里为什么要+1不懂
    i += 1

if flag == 1:
    print('阶梯数是:', x)#打印答案
else:
    print('在程序限定的范围内找不到答案!')#这题如果有问题就打印这。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 12:46:45 | 显示全部楼层
for i in range(0,200):#在(i)范围值
    if i%2 == 1 and i%3 == 2 and i%5 == 4 and i%6 == 5 and i%7 == 0:#题目
        print(i)等于。
这些我也能看懂。
但是视频没教。我也想跟着视频学习。。有不懂的地方希望不吝赐教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:48:33 | 显示全部楼层
liuyi3321 发表于 2020-3-10 12:31
flag = 0#为什么要赋值不懂?我把代码删除了也试试也行。只是不知道为什么。请能耐心看一下。新手问题好吗 ...

从你的字里行间。
可以看出你不是学编程的料。
叫你从头学叫打击你,还有哪个人能和你说半个字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:48:41 | 显示全部楼层
liuyi3321 发表于 2020-3-10 12:38
好吧。可能我表述有问题。
x = 7#根据题目知道赋值7
i = 1# 赋值需求1

flag 就是一个标志,一开始标记为 0,表示没找到阶梯数。如果数字是阶梯数,则将 flag 设置为 1,表示已找到阶梯数。最后判断 flag 是否为 1,为 1 代表找到了阶梯数,否则代表没有找到阶梯数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:49:35 | 显示全部楼层
liuyi3321 发表于 2020-3-10 12:38
好吧。可能我表述有问题。
x = 7#根据题目知道赋值7
i = 1# 赋值需求1

你去掉 +1 也是可以运行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 12:54:49 | 显示全部楼层    本楼为最佳答案   
1. flag的赋值:我的理解是命名一个变量需要有一个起始值;
2. flag=1:按照整个程序的理解,flag=0时,没有找到正确解,找到正确解(也就是 if后面的(x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5)条件为true)是,flag变为1,这样你就知道你找到正确解了。也就是说flag的值可以用来判断是否找到答案。
3. 因为你的x最开始的值就是7,i=1,x=7*i,所以你后面循环就要i+1。
4. i+=1和i +=1是一样的。
最后,你可以用下面比较简单的一段代码来实现同样的目的:
x = 1
while x<=1000:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5) and (x%7==0):
        print('阶梯数是:', x)
        break
    else:
        x+=1
但是,这个简单版的代码需要计算机运行119次,你问题里的代码只需要计算机运行100次,如果再加个break,就只需要运行17次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 12:59:38 | 显示全部楼层
ba21 发表于 2020-3-10 12:48
从你的字里行间。
可以看出你不是学编程的料。
叫你从头学叫打击你,还有哪个人能和你说半个字。

你看你说的啥。为啥能像其它版主好好回答呢?实习版主大人。这TM不是打击是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-10 13:02:57 | 显示全部楼层
ba21 发表于 2020-3-10 12:48
从你的字里行间。
可以看出你不是学编程的料。
叫你从头学叫打击你,还有哪个人能和你说半个字。

我觉得这话说的有点偏颇了,新手问问题是很正常的现象,不知道从哪里看出“不是学编程的料”了。
如果都这样回复,那就真没人敢问问题了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 13:03:58 | 显示全部楼层
大虾斩妖精 发表于 2020-3-10 12:54
1. flag的赋值:我的理解是命名一个变量需要有一个起始值;
2. flag=1:按照整个程序的理解,flag=0时,没 ...

谢谢。。理解了。我再消化,消化。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表