题目:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,且都大于1),每段绳子的长度记为k[0],k[1],…k[m]。请问k[0]*k[1]k[2]…*k[m]可能的最大成绩是多少?
func cunLine(n int) int {
if n < 2 {
return 0
}
if n == 2 {
return 1
}
if n == 3 {
return 2
}
res := make([]int, n+1)
res[1], res[2], res[3] = 1, 2, 3
for i := 4; i <= n; i++ {
max := 0
for j := 1; j < i; j++ {
s := res[j] * res[i-j]
if s > max {
max = s
}
}
res[i] = max
}
return res[n]
}