鱼C论坛

 找回密码
 立即注册
查看: 1819|回复: 3

[已解决]关于python第六讲

[复制链接]
发表于 2021-1-9 22:45:21 | 显示全部楼层 |阅读模式

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

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

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) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')这段求阶梯数的求大神解释一下,有点看不懂
最佳答案
2021-1-9 22:54:04
本帖最后由 jackz007 于 2021-1-9 23:15 编辑
x = 7                    # 枚举变量 x 赋初值 7
i = 1                    # 循环变量 i 赋初值 1
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                                               # 是,置找到标志为 1
    else:                                                      # 否则
        x = 7 * (i + 1)  # 生成下一个 x 值                   
    i += 1               # 循环变量 i 的数值加 1

if flag == 1:            # 根据 flag 的值判断是否有找到这个 x
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
        这个代码在开始循环前,先设置 x 的初始值为 7,i 为 1,找到标志 flag 为 0,并设置循环次数为 100 次,进入循环后,先判断 x 是否符合条件,如果不符合,那就生成新的 x 值,继续循环;如果符合,就置 flag = 1,继续循环,每次循环,循环变量 i 的值就加 1,当 i 等于 101 的时候,循环就到达终点。由于找到符合条件的 x 时,x 的值未被改变,所以,在后续的循环中,无论 i 值怎么改变,x 的值会始终保持不变(始终在 if 中转,不会执行到 else 中),直到循环结束。循环结束后,如果 flag 的值是 1,说明是找到了,如果维持原始值 0,那就说明没找到。
        改写一下更容易理解
c = 0
for x in range(7 , 701 , 7):
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
        print('阶梯数是:', x)
        c += 1
if c == 0:
    print('在程序限定的范围内找不到答案!') 
     运行实况
D:\00.Excise\Python>python x.py
阶梯数是: 119
阶梯数是: 329
阶梯数是: 539

D:\00.Excise\Python>

        运行这个代码你会发现,其实,在指定的数值范围内,符合条件的阶梯数其实不止一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-9 22:54:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-1-9 23:15 编辑
x = 7                    # 枚举变量 x 赋初值 7
i = 1                    # 循环变量 i 赋初值 1
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                                               # 是,置找到标志为 1
    else:                                                      # 否则
        x = 7 * (i + 1)  # 生成下一个 x 值                   
    i += 1               # 循环变量 i 的数值加 1

if flag == 1:            # 根据 flag 的值判断是否有找到这个 x
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
        这个代码在开始循环前,先设置 x 的初始值为 7,i 为 1,找到标志 flag 为 0,并设置循环次数为 100 次,进入循环后,先判断 x 是否符合条件,如果不符合,那就生成新的 x 值,继续循环;如果符合,就置 flag = 1,继续循环,每次循环,循环变量 i 的值就加 1,当 i 等于 101 的时候,循环就到达终点。由于找到符合条件的 x 时,x 的值未被改变,所以,在后续的循环中,无论 i 值怎么改变,x 的值会始终保持不变(始终在 if 中转,不会执行到 else 中),直到循环结束。循环结束后,如果 flag 的值是 1,说明是找到了,如果维持原始值 0,那就说明没找到。
        改写一下更容易理解
c = 0
for x in range(7 , 701 , 7):
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
        print('阶梯数是:', x)
        c += 1
if c == 0:
    print('在程序限定的范围内找不到答案!') 
     运行实况
D:\00.Excise\Python>python x.py
阶梯数是: 119
阶梯数是: 329
阶梯数是: 539

D:\00.Excise\Python>

        运行这个代码你会发现,其实,在指定的数值范围内,符合条件的阶梯数其实不止一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2021-6-1 16:16:36 | 显示全部楼层
jackz007 发表于 2021-1-9 22:54
这个代码在开始循环前,先设置 x 的初始值为 7,i 为 1,找到标志 flag 为 0,并设置循环次数为  ...

for x in range(7 , 701 , 7):
上面这个的意思是循环对吧?但是目前貌似还没有学,
为啥填三个数字不是很明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-2 16:32:19 | 显示全部楼层
陈小东 发表于 2021-6-1 16:16
for x in range(7 , 701 , 7):
上面这个的意思是循环对吧?但是目前貌似还没有学,
为啥填三个数字不是 ...

      x 从 7 开始,循环到 701 结束,如果没有最后那个 7,那么,每次循环 x 的值增加 1,有了这个 7,每次循环 x 的值增加 7。就是说,循环中,x 的值将会依次等于 7、14、21、28........。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 17:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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