Dado un número entero positivo n, que se divide en al menos dos números enteros positivos, y el producto de esos números enteros maximizada. Devuelve el máximo que se puede conseguir el producto.
Ejemplo 1:
Entrada: 2
Salida: 1
explica: 2 = 1 + 1, 1 × 1 = 1.
Ejemplo 2:
Entrada: 10
Salida: 36
explica: 10 = 3 + 3 + 4 , 3 x 3 x 4 = 36.
Nota: Se puede suponer que n no es inferior a 2 y no más de 58.
1 público clase T343 { 2 público int integerBreak ( int n) { 3 int [] dp = nuevo int [n + 1 ]; 4 Arrays.fill (dp, 1 ); 5 para ( int i = 3; i <= n; i ++ ) { 6 para ( int j = 1; j <i; j ++ ) { 7 dp [i] = Math.max (dp [i], Math.max ( j * (i - j), j * dp [i - j])); 8 } 9 } 10 de retorno dp [n]; 11 } 12 }