题目描述https://leetcode-cn.com/problems/integer-break/
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
感觉用数学法比较简单(动态规划目前还不会:(哭唧唧
class Solution {
public:
int integerBreak(int n) {
int x,y;
if(n<4){
cout<<n-1;
return n-1;
}
else{
x=n/3;
y=n%3;
if(y==1)
{
printf("%d",pow(3,x-1)*4);
return pow(3,x-1)*4;
}else if(y==0){
printf("%d",pow(3,x));
return pow(3,x);
}
else{
printf("%d",pow(3,x)*y);
return pow(3,x)*y;
}
}
}
};