做毕业网站的周记,在线代理网页服务器,云南建设厅查证网站,绘本馆网站建设给定一个正整数 n#xff0c;将其拆分为至少两个正整数的和#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
示例 1:
输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2:
输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 说明: 你可以假设 n 不小…给定一个正整数 n将其拆分为至少两个正整数的和并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
示例 1:
输入: 2 输出: 1 解释: 2 1 1, 1 × 1 1。 示例 2:
输入: 10 输出: 36 解释: 10 3 3 4, 3 × 3 × 4 36。 说明: 你可以假设 n 不小于 2 且不大于 58。
思路只有23不用拆分其他数字只有拆为23才能乘积最大
4 max2*2
5 max2*3
6 max2*2*2 刚开始发现拆为3*2*1如果出现1那就把3*1换成2*2使乘积最大
7 max3*2*2
......
提交的代码
class Solution { public int integerBreak(int n) { int max1; if(n2) { return 1; } if(n3) { return 2; } while(n3) { max*3; n-3; } if(n2) { max*2; n-2; } if(n1) { max/3; max*4; n-1; } return max; }
}
完整的代码: public class Solution343 { public static int integerBreak(int n) { int max1; if(n2) { return 1; } if(n3) { return 2; } while(n3) { max*3; n-3; } if(n2) { max*2; n-2; } if(n1) { max/3; max*4; n-1; } return max; } public static void main(String[] args) { int n 2; System.out.println(integerBreak(n)); } }