均分绳子的长度
剪绳子
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;
}
};