鱼C论坛

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

[已解决]课6作业,不太懂,谁帮忙注释一下

[复制链接]
发表于 2017-12-4 23:58:02 | 显示全部楼层 |阅读模式

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

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

x
  1. x = 7
  2. i = 1
  3. flag = 0

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

  10. if flag == 1:
  11.     print('阶梯数是:', x)
  12. else:
  13.     print('在程序限定的范围内找不到答案!')
复制代码



为什么不能直接打印x呢非要插入一个flag的变量呢!如果满足if条件在下一条语句直接打出来x的值不行吗?试了一下会打印会好多个值!是什么原因呢!
最佳答案
2017-12-5 12:19:05
x = 7#初始化x = 7
i = 1#初始化i = 1
flag = 0#初始化flag状态 = 0,判断阶梯数存在与否
while i <= 100:#循环i在[1,100]间,计100个数

    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
            #若x除2余1……,则赋值x = 1
        flag = 1
    else:
        x = (7 * (i+1)) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1 #i = i + 1


if flag == 1:   #判断是否存在阶梯数,存在就打印

    print('阶梯数是:', x)
else:

    print('在程序限定的范围内找不到答案!')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-5 06:53:31 From FishC Mobile | 显示全部楼层
因为需要if条件成立的同时x必须为7的倍数才是结果
你可以贴出自己的代码,才能帮你准确分析
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 07:38:56 | 显示全部楼层
flag只是一个变量,如果循环条件里的 if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):成立就flag=1,然后继续循环直到i+=1到i==100就结束,然后就显示x值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 08:34:32 | 显示全部楼层
为什么不直接print x的值, 因为题目要求是既要满足if的条件 又要是7的倍数才行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 09:55:56 | 显示全部楼层
flag标志就是用来区分是不是阶梯数。一句话就就说完了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 12:19:05 | 显示全部楼层    本楼为最佳答案   
x = 7#初始化x = 7
i = 1#初始化i = 1
flag = 0#初始化flag状态 = 0,判断阶梯数存在与否
while i <= 100:#循环i在[1,100]间,计100个数

    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
            #若x除2余1……,则赋值x = 1
        flag = 1
    else:
        x = (7 * (i+1)) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1 #i = i + 1


if flag == 1:   #判断是否存在阶梯数,存在就打印

    print('阶梯数是:', x)
else:

    print('在程序限定的范围内找不到答案!')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 12:22:33 | 显示全部楼层
可以直接打印,存在多次打印是因为没有跳出循环,而一直循环进入if条件下而打印。可以优化:
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
        print('阶梯数是:%d' % x)
        break
    else:
        x = (7 * (i+1)) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1
else:
    print('在程序限定的范围内找不到答案!')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 13:13:04 | 显示全部楼层
song0423 发表于 2017-12-5 12:19
x = 7#初始化x = 7
i = 1#初始化i = 1
flag = 0#初始化flag状态 = 0,判断阶梯数存在与否

不明白阶梯数是个什么数啊?我以为就是求一个数字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 13:17:48 | 显示全部楼层
ba21 发表于 2017-12-5 09:55
flag标志就是用来区分是不是阶梯数。一句话就就说完了

什么是阶梯数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 13:40:35 | 显示全部楼层

我说你是干嘛的????
你是来搞笑的是吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 14:05:15 | 显示全部楼层
大麦miracle 发表于 2017-12-5 13:13
不明白阶梯数是个什么数啊?我以为就是求一个数字

就代码而言,应该就是1个数,它:
    除2余1、除3余2、除5余4、除6余5,同时又是7的倍数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 14:47:27 | 显示全部楼层
ba21 发表于 2017-12-5 13:40
我说你是干嘛的????
你是来搞笑的是吧。

我是个小白怎么了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 14:52:15 | 显示全部楼层
song0423 发表于 2017-12-5 12:22
可以直接打印,存在多次打印是因为没有跳出循环,而一直循环进入if条件下而打印。可以优化:
x = 7
i = 1 ...

为什么非要给个变量flag呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-6 09:21:32 | 显示全部楼层
大麦miracle 发表于 2017-12-5 14:52
为什么非要给个变量flag呢

flag只是立个牌坊,做标识用的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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