题目:14- I. 剪绳子
分析: 当绳子长度大于4时,尽可能多的分成长度为3的小段,这样乘积是最大的。(数学证明自行查找)
思路:
n小于4时,返回n-1;n等于4时,返回4;n大于4时,就要切割成长度为3的小段,只要n还大于4,每切除一段3,就累乘起来。
代码:
class Solution {
public int cuttingRope(int n
) {
if(n
< 4){
return n
- 1;
}else if(n
== 4){
return n
;
}
int res
= 1;
while(n
> 4){
res
*= 3;
n
-= 3;
}
return res
*n
;
}
}