联想到 "a+b>=2√ab"
求整数n分成m段后乘积的最大值
a = m / n
b = m % n
n分成m段时的最大值为,max(m) = (a+1)^b * (a)^(m-b)
m 从2到n max(m)值呈现一个尖峰状
当 max(m) <= max(m-1) 时,max(m-1)最大。
class Solution { public: int cutRope(int number) { int m,a,b; int max_new = 0; int max_old = 0; for(m = 2;m <= number;m++){ a = number/m; b = number%m; max_new = pow(a + 1 , b) * pow(a , m - b); if(max_old >= max_new) break; max_old = max_new; } return max_old; } };