輸入一個數n,意義見題面。(2 <= n <= 60)
輸出答案。
18
思路:能夠知道2的話,此時應輸出1,3的話應輸出2。其餘的值都能分解,好比8,能夠分解爲2+6和3+5,能夠再分割以下:
2+6=2+2+4或2+3+3
2+2+4還能夠分解爲2+2+2+2.
3+5=3+2+3
能夠看到,當分解到3和2時,就不須要再向下分解了。代碼以下:
class Solution { public: int cutRope(int number) { if(number<=2) return 1; if(number==3) return 2; int max=number; for(int i=0;i<=1;i++) { int temp=(i+2)*(number-i-2); if(temp>max) max=temp; if(max<(cutRope(i+2)*cutRope(number-i-2)) ) { max=cutRope(i+2)*cutRope(number-i-2); } } return max; } };