Показать сообщение отдельно
Старый 25.10.2016, 12:03   #1 (permalink)
iks2
Member
 
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вычислить необычный минимум

Задача
Задается случайное семизначное число. В этом числе две не крайние и не рядом стоящие цифры заменяются на два знака +. То есть образуется арифметическое выражение, означающее, что надо сложить три числа. Надо определить куда поставить эти два знака +, чтобы сумма имела минимальное значение.
Вывести на экран:
1) исходное число
2) арифметическое выражение
3) минимум

Вопросы
1. Есть ли иное решение этой задачи?
2. Поможет ли здесь массив? И как?
3. Как решить эту задачу, если и число будет вдвое длиннее и знаков + вдвое больше?
4. Что можно посоветовать, если длина числа будет неопределенной величиной?

Код:
CLS
RANDOMIZE TIMER
DIM ns AS STRING
DIM ns2 AS STRING

n = 1000000 + 9000000 * RND
ns = LTRIM$(STR$(n))

min = 1017

FOR i = 2 TO 4
FOR j = i + 2 TO 6
   a = VAL(LEFT$(ns, i - 1))
   b = VAL(MID$(ns, i + 1, j - 1 - i))
   c = VAL(MID$(ns, j + 1))
   d = a + b + c

   IF d < min THEN
      min = d
      ns2 = ns
      MID$(ns2, i, 1) = "+"
      MID$(ns2, j, 1) = "+"
   END IF
NEXT j, i

PRINT ns
PRINT ns2
PRINT "MIN ="; min
END
iks2 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070