鱼C论坛

 找回密码
 立即注册
查看: 2281|回复: 2

[已解决]小白求教 阶梯问题,为什么到112就停止了? else 里面的x + =7放到else外面.

[复制链接]
发表于 2016-6-9 17:07:04 | 显示全部楼层 |阅读模式

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

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

x

我是这么写的

x = 7
flag = 0

while x <= 1000:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
    else:
        print (x) #这一行测试用
        x += 7
if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')  


C:\Users\XCT_007\Desktop
最佳答案
2016-6-9 19:53:25
x += 7 如果放在else里的话,执行到112就不会再执行了,因为119为一个阶梯数,而if里没有x+=7 所以不会继续往下执行循环

x += 7如果放在else外的话可以执行出对应的结果,但是只能得到一个阶梯数1001,而且还不对

照你的程序稍微改了一下,应该可以打印出最后的结果:

  1. x = 7
  2. flag = 0


  3. while x <= 1000:
  4.             if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
  5.                         flag = 1
  6.                         if flag == 1:
  7.                                     print('阶梯数是:', x)
  8.                         else:
  9.                                     print('在程序限定的范围内找不到答案!')            
  10.             else:
  11.                         print (x) #这一行测试
  12.             x += 7
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-9 19:53:25 | 显示全部楼层    本楼为最佳答案   
x += 7 如果放在else里的话,执行到112就不会再执行了,因为119为一个阶梯数,而if里没有x+=7 所以不会继续往下执行循环

x += 7如果放在else外的话可以执行出对应的结果,但是只能得到一个阶梯数1001,而且还不对

照你的程序稍微改了一下,应该可以打印出最后的结果:

  1. x = 7
  2. flag = 0


  3. while x <= 1000:
  4.             if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
  5.                         flag = 1
  6.                         if flag == 1:
  7.                                     print('阶梯数是:', x)
  8.                         else:
  9.                                     print('在程序限定的范围内找不到答案!')            
  10.             else:
  11.                         print (x) #这一行测试
  12.             x += 7
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-9 20:08:15 | 显示全部楼层
本帖最后由 lygwhy 于 2016-6-9 20:11 编辑

因为进入死循环了,找到第一个符合条件的数后就无法自拔了。  x+=7 要放外面 ,并放在打印之后,而且else里要把flag位置0.可以不设这个状态,直接打印
x = 7
flag = 0
count=0
while x <= 1000:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
        count+=1
    else:
        flag=0
    if flag == 1:
        print('阶梯数是:', x)
    x+=7
if count==0:
    print('范围内找不到答案')
        
   
     
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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