Задача: Смена операции

Задача: Смена операции

https://t.me/Golang_google

Условие: дается целое число, нужно переконвертировать данное число в сумму, слагаемых должно быть не менее двух. А само разложение должно осуществляться таким образом, что произведение слагаемых будет максимальным.


В результате необходимо получить это самое произведение.


Пример:


Ввод: n = 2

Вывод: 1

Объяснение: 2 = 1 + 1, 1 × 1 = 1.


Ввод: n = 10

Вывод: 36

Объяснение: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.


Решение:

Go

func integerBreak(ni int) int {
    var (
        maxPos float64 = 0
        i float64 = 1
        j float64 = 1
        n float64 = float64(ni)
    ) 
    for ; n / i != 1 ; i++ {
          for ; j * i < n ; j++ {
              val := n - j * i
              multi := math.Pow(i, j) * val
              if multi > maxPos {
                  maxPos = multi
              }
          } 
          j = 1
    }
    return int(maxPos)
}






Report Page