Дано 7 чисел, найти их максимальную сумму при условии - QBasic

Формулировка задачи:

Дано 7 чисел. 1*7; 2*6; 3*5; 4*4; 5*3; 6*2; 7*1 Между этими числами надо расставить три знака сложения и три знака вычитания так, чтобы полученная сумма была максимальной. (проверено)
REM  
REM OTBET: 22
REM
 
CLS
DIM a(1 TO 7) AS INTEGER
 
FOR i = 1 TO 7
   a(i) = i * (8 - i)
NEXT
 
FOR i1 = -1 TO 1 STEP 2
FOR i2 = -1 TO 1 STEP 2
FOR i3 = -1 TO 1 STEP 2
FOR i4 = -1 TO 1 STEP 2
   IF ABS(i1 + i2 + i3 + i4) < 3 THEN
      FOR i5 = -1 TO 1 STEP 2
         IF ABS(i1 + i2 + i3 + i4 + i5) < 2 THEN
            FOR i6 = -1 TO 1 STEP 2
               s = 7
               IF i1 + i2 + i3 + i4 + i5 + i6 = 0 THEN
                  IF i1 = 1 THEN s = s + a(2) ELSE s = s - a(2)
                  IF i2 = 1 THEN s = s + a(3) ELSE s = s - a(3)
                  IF i3 = 1 THEN s = s + a(4) ELSE s = s - a(4)
                  IF i4 = 1 THEN s = s + a(5) ELSE s = s - a(5)
                  IF i5 = 1 THEN s = s + a(6) ELSE s = s - a(6)
                  IF i6 = 1 THEN s = s + a(7) ELSE s = s - a(7)
               END IF
               IF max < s THEN max = s
            NEXT i6
         END IF
      NEXT i5
   END IF
NEXT i4, i3, i2, i1
 
PRINT max
END

Код к задаче: «Дано 7 чисел, найти их максимальную сумму при условии - QBasic»

textual
DIM a(1 TO 7) AS LONG
DIM i AS LONG, j AS LONG
FOR i = 1 TO 7
    a(i) = i * (8 - i)
    FOR j = 2 TO i - 1
        IF a(i) > a(j) THEN SWAP a(i), a(j)
    NEXT j, i
PRINT a(1) + a(2) + a(3) + a(4) - a(5) - a(6) - a(7)

8   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ