回 帖 发 新 帖 刷新版面

主题:QBASIC

、有一个最多只能装10公斤重物品的网袋。现在有白菜5公斤,肉2公斤,鱼3.5公斤,酱油连瓶1.7公斤,白糖1公斤,土豆5.1公斤。如果这些物品每件不能拆开来装(也就是说只许全装或不装),请设计一个程序,使网袋装的物品总重量最大。

回复列表 (共15个回复)

沙发

设计循环就好了  最笨的方法

板凳

只能设循环了

3 楼

怎么设?

4 楼

枚举法 

5 楼

cls
DIM A(6):S=0:G=0
FOR I=1 TO 6
READ A(I):S=S+A(I)
NEXT I
FOR I=1 TO 5
S1=S-A(I)
FOR J=I+1 TO 6
S8=S1-A(J)
IF S2<=10 AND S2>G THEN 
G=S2:B=I:C=J
END IF
NEXT J,I
FOR I=1 TO 6
IF I<>B AND I,>C THEN PRINT I;A(I);
NEXT I
PRINT G
DATA 5,2,3.5,1.7,1,5.1
END

6 楼

只能这样慢慢循环,和楼下的一样,但只能这样了。。。。。
cls
DIM A(6):S=0:G=0
FOR I=1 TO 6
READ A(I):S=S+A(I)
NEXT I
FOR I=1 TO 5
S1=S-A(I)
FOR J=I+1 TO 6
S8=S1-A(J)
IF S2<=10 AND S2>G THEN 
G=S2:B=I:C=J
END IF
NEXT J,I
FOR I=1 TO 6
IF I<>B AND I,>C THEN PRINT I;A(I);
NEXT I
PRINT G
DATA 5,2,3.5,1.7,1,5.1
END

7 楼

这么简单…………唉…………

8 楼

穷举。就是有点麻烦…………

9 楼

我觉得也是!

10 楼

cls
for a = 0 to 1
 s=s+a*5.1
  for b = 0 to 1
   s=s+b*5
   for c = 0 to 1
    s=s+c*3.5
     for d = 0 to 1
      s=s+d*2
      for e = 0 to 1
       s=s+e*1.7
       for f = 0 to 1
        s=s+e
        if s<=10 and s > mix then mix = s
next f,e,d,b,a

我来回复

您尚未登录,请登录后再回复。点此登录或注册