思路
1.n = 2, mmax = 1 * 1 = 1;
2.n = 3, mmax = 1 * 2 = 2;
3.n = 4, res = 1, les = 1, mmax = 2 * 2 = 4, 分成两个2
3.n = 5 分成一个2 一个3
4.n = 6 分成两个3
5.以此类推,尽量分出多个3,其余为2,这样构成的数最大
C++ 代码
if (n <= 3) return 1 * (n - 1);
int a = n/3,b=n%3;
if(b==0) return pow(3,a);
if(b==1) return pow(3,a-1)*4;
return pow(3,a)*2;