xia3880417 发表于 2019-1-23 09:17:57

一道简单的数学题。想用python求解却跑不起来

麻烦有没有大哥帮小弟看下 代码错在哪里~

4.一水池内有16吨水,水池装有A、B两个排水管和C进水管,
A管独开每小时排水5吨,B管独开每小时排水1吨,C管独开每小时灌进水4吨。
现在按A、B、C、A、B、C……的顺序轮流各开1小时。问经过(   )小时,水池的水刚好排空。

t = 0
X = 16
A = -5
B = -1
C = 4
while 1 :
    if X == 0:
      break
      print ('经过',t,'小时,水池排空')
    else:
      t = t + 1
      X = X + A
      if X == 0:
            break
            print ('经过',t,'小时,水池排空')
      else:
            t = t + 1
            X = X + B
            if X == 0:
                break
                print ('经过',t,'小时,水池排空')
            else:
                t = t + 1
                X = X + C
      
   
      
   

heidern0612 发表于 2019-1-23 09:25:03

本帖最后由 heidern0612 于 2019-1-23 09:53 编辑

逻辑问题,从题意可知:

1、水池的水经过三个管道A、B、C的排放,三个小时共计减少2吨;

2、在水池的水减少到6吨的时候,可知再经过两个小时A和B的排放就完全放空了。


所以如下这么写:

x = 16
temp = 0
while True:
    ifx == 6:
      print(f"经过{temp+2}小时,泳池的水排空")
      break
    else:
      x -= 2
      temp += 3

幻千城12 发表于 2019-1-23 09:57:30

x = 16
t = 0
while True:
    if x == 0:
      print(t)
      break
    else:
      t += 1
      if t % 3 == 1:
            x -= 5
      elif t % 3 == 2:
            x -= 1
      else:
            x += 4

jackz007 发表于 2019-1-23 10:05:30

#!/usr/bin/python
#coding:gbk

if __name__ == '__main__':
    x = 16
    t = 0
    while x > 0 :
      t += 1
      d = t % 3
      if d == 1:
            x -= 5
      elif d == 2:
            x -= 1
      else:
            x += 4

    print
    print "经过 %d 小时,泳池的水排空\n" % t
    print

塔利班 发表于 2019-1-23 10:16:36

x=16
t=
i=0
while x>0:
    x-=t
    i+=1
print(i)

zxc5759139 发表于 2019-1-23 14:38:11

把break和print换一下位置

2zssq 发表于 2019-1-23 17:30:41

a,b,c,d,e,f = 5,1,4,16,1,0

while d:

    if e >= 4 :e = 1
   
    if e == 1 :
      d -= a
      e += 1
      f += 1
    elif e == 2:
      d -= b
      e += 1
      f += 1
    elif e == 3:
      d -= c
      e += 1
      f += 1

print(f)

这个应该看的懂了吧
页: [1]
查看完整版本: 一道简单的数学题。想用python求解却跑不起来