鱼C论坛

 找回密码
 立即注册
查看: 2150|回复: 4

痛苦的计算

[复制链接]
发表于 2017-8-14 19:19:02 | 显示全部楼层 |阅读模式

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

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

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
回复

使用道具 举报

发表于 2017-8-14 19:32:50 | 显示全部楼层
  x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
应为i是从1开始的
第一次计算的时候你把i就等于1 然后计算出x的值后 i=i+1 重复循环
首先x=7 如果是x=7*i的话 第一次else的计算结果返回的还是x=7 这样就重复了一次 效率不高
写成x=7*(i+1)的话 就节约了一次重复的步骤 效率显得更高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-14 20:00:46 | 显示全部楼层
丢丢yhj 发表于 2017-8-14 19:32
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
应为i是从1开始的
第一次计算的时候你把 ...

1F7$C@$EQGMN06CGDZ2`XQC.png
这是为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-14 20:09:35 | 显示全部楼层
本帖最后由 ba21 于 2017-8-14 20:54 编辑

x = 7
i = 1
flag = 0

while i <= 100: #你这里是循环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(7的倍数,为毛还要+1)
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')

2017-08-14_201919.png
改你的代码:
==================================================================
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 
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
2017-08-14_205202.png

一道简简单单的题干嘛搞得这么复杂
=================================================================
x = 7
flag = 0

while x <= 1000: #1000内的阶梯数
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag=1
        print('阶梯数是:', x)
    x += 7 # 根据题意,x一定是7的整数倍

if flag == 0:
    print('在程序限定的范围内找不到答案!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-14 20:11:56 | 显示全部楼层

'% '  在这里是求余数用的
一开始给x赋的值是7  7/2 余1
进行下步 7/3 不余1  if不成立
进入else: 这里的x=7*(i+1) 是重新给x赋了值  这个时候x=14了 i=2了
然后进入while 2<100 开始循环
直到x满足if所有的条件 给flag重新赋值为1
满足第二个if条件 输出x的值

  if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
这句话是指 x要满足上述所有条件 才进行flag=1这一步

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 14:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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