一个数拆成数个数的和,求乘积最大的情况:
数学题,尽量化为3即可。
class Solution {
public:
int integerBreak(int n) {
if(n == 2) return 1;
if(n == 3) return 2;
int ans = 1;
int a = n/3;
int b = n%3;
if(a == 0) return n;
for(int i=1;i<a;i++){
ans*=3;
}
if(b == 0) return ans*3;
if(b == 1) return ans*4;
if(b == 2) return ans*6;
return 0;
}
};
探讨将一个整数拆分为多个整数之和时,如何使得这些整数的乘积最大。通过算法分析,发现当拆分数尽可能接近3时,乘积能达到最大值。
296

被折叠的 条评论
为什么被折叠?



