均分绳子的长度
剪绳子
http://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8
通过分析可以知道,绳子不管被分为多少份,想要求得最大值,每份之间的差值就要最小,举个例子,数字9分为3份,可以分为(1,1,7)=7,(1,2,6)=12,(1,3,5)=15...等等,但其中最大的还是(3,3,3)=27,由此可以看出,不管绳子分多少份,都应该让每份的长度尽可能平均才能达到一个最大值。
class Solution { public: int cutRope(int number) { int m = 2; int max = 0; for (; m <= number; m++) { int left = number % m; int base = number / m; int sum = 1; for (int i = 0; i < m; i++) { if (left-- > 0) { sum *= (base + 1); } else { sum *= base; } } if (sum > max) { max = sum; } } return max; } };