鱼C论坛

 找回密码
 立即注册
查看: 771|回复: 15

[技术交流] 求大神帮忙解释下原理啊

[复制链接]
发表于 2018-2-28 18:04:00 | 显示全部楼层 |阅读模式

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

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

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('在程序限定的范围内找不到答案!')

为什么这么写呢。什么意思。。有点看不明白。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 19:24:02 | 显示全部楼层
这是什么语言?好象不是C。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 19:40:38 | 显示全部楼层

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

  4. while i <= 100:
  5.     # 用x 除2 取余看是否等于1 其他的判断都是一样的就是除数不一样, 最后如果都余1那就证明这个数是阶梯数
  6.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):  
  7.         #  flag = 1 表示这个循环中存在阶梯数
  8.         flag = 1
  9.     else:
  10.         # 如果不满足上面的条件则将x赋值为 7* (i+1)
  11.         x = 7 * (i+1)   # 根据题意,x一定是7的整数倍,所以每次乘以7
  12.     i += 1 # 索引数+1

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

给出代码的注释是这样,但是这个程序貌似是有问题的,最后输出来的也不是最终结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 19:40:49 From FishC Mobile | 显示全部楼层
这是py啊
还有楼主你的问题是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 21:25:42 | 显示全部楼层
supperboys 发表于 2018-2-28 19:40
给出代码的注释是这样,但是这个程序貌似是有问题的,最后输出来的也不是最终结果

为什么一开始要设置3个变量呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 21:27:16 | 显示全部楼层
LargeCat 发表于 2018-2-28 19:40
这是py啊
还有楼主你的问题是什么?

我的问题就是为什么要这样写代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 21:46:45 | 显示全部楼层
石头0001 发表于 2018-2-28 21:25
为什么一开始要设置3个变量呢

设置初始值而已,这个没什么难理解的吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 21:51:18 | 显示全部楼层
supperboys 发表于 2018-2-28 21:46
设置初始值而已,这个没什么难理解的吧?

这个好理解
x = 7 * (i+1)   为什么要i+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 22:01:13 | 显示全部楼层
FLAG=1之后是不是要加一个break?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 22:09:07 | 显示全部楼层
painx 发表于 2018-2-28 22:01
FLAG=1之后是不是要加一个break?

答案是复制的。。还没看懂呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 22:43:12 | 显示全部楼层
你是哪里没看懂呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 09:09:40 | 显示全部楼层
石头0001 发表于 2018-2-28 21:51
这个好理解
x = 7 * (i+1)   为什么要i+1


因为他的初始值是7 那么i如果不加的话x 还是=7 所以加1就变为了14
等下一次循环的时候变成3然后x=21

不过还是要说,你这个是答案么?明显运行出来的东西不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 11:50:40 | 显示全部楼层
supperboys 发表于 2018-3-1 09:09
因为他的初始值是7 那么i如果不加的话x 还是=7 所以加1就变为了14
等下一次循环的时候变成3然后x=21
...

还不是非常理解@
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 11:51:09 | 显示全部楼层

就是整个啊。。为什么这样写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 14:10:20 | 显示全部楼层
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     # 用x 除2 取余看是否等于1 其他的判断都是一样的就是除数不一样, 最后如果都余1那就证明这个数是阶梯数
  6.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):  
  7.         #  flag = 1 表示这个循环中存在阶梯数
  8.         flag = 1
  9.     else:
  10.         # 如果不满足上面的条件则将x赋值为 7* (i+1)
  11.         x = 7 * (i+1)   # 根据题意,x一定是7的整数倍,所以每次乘以7  
  12. # 如果这里 i 不加1 的话那么 x= 7*1 =7
  13. #那么下次再进循环的话判断的x还是7 等于这个循环判断了两次x=7的情况
  14. #不过这个代码本身逻辑有点问题,所以这个+1其实并不是什么重要的地方
  15.     i += 1 # 索引数+1

  16. if flag == 1:
  17.     print('阶梯数是:', x)
  18. else:
  19.     print('在程序限定的范围内找不到答案!')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 15:25:08 | 显示全部楼层

好的,我再看看吧。谢谢你的解答啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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