/**
* 減繩子
* * 給你一根長度為n的繩子,請把繩子剪成整數長的m段(m、n都是整數,n>1並且m>1,m<=n),每段繩子的長度記為k[1],...,k[m]。
* 請問k[1]x...xk[m]可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。
* * 輸入描述:輸入乙個數n,意義見題面。(2 <= n <= 60)
* 返回值描述:輸出答案
* * 示例1:
* 輸入:8
* 輸出:18
*/public class jz067cutrope
if (target == 2)
if (target == 3)
int timesof3 = target / 3;
if (target - timesof3 * 3 == 1)
int timesof2 = (target - timesof3 * 3) / 2;
return (int) (math.pow(3, timesof3)) * (int) (math.pow(2, timesof2));
}/**
* 動態規劃
* @param target
* @return
*/public int cutrope2(int target)
if (target == 2)
if (target == 3)
int products = new int[target + 1];
products[0] = 0;
products[1] = 1;
products[2] = 2;
products[3] = 3;
int max = 0;
for (int i = 4; i <= target; i++)
}products[i] = max;
}return max;
}}
劍指offer014減繩子
給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且m 1 每段繩子的長度記為 k 0 k 1 k m 請問 k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。示例 1 輸入 2...
劍指offer 剪繩子
題目 給你一根長度為n繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段的繩子的長度記為k 0 k 1 k m k 0 k 1 k m 可能的最大乘積是多少?例如當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此 時得到最大的乘積18。思路 動態規劃 任何動態規劃都是由遞迴演...
《劍指Offer》剪繩子
給你一根長度為n的繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 xk 1 x.xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18 乘法計算,除了一以外,越多的數相...