您的位置:首页 > 其它

给出一个整数n,将n分解为至少两个整数之和,使得这些整数的乘积最大化,输出能够获得的最大的乘积。

2018-08-13 16:02 471 查看

给出一个整数n,将n分解为至少两个整数之和,使得这些整数的乘积最大化,输出能够获得的最大的乘积。
例如:
2=1+1,输出1;
10=3+3+4,输出36。

思路:分解出来的3越多,乘积越大,具体数学证明可以网上找。当分解到剩4及以下时,可以看出此时再分解结果会更小,因此不予分解,直接相乘即可。

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();

System.out.println(binSearch(n));
}

public static int binSearch(int k) {
if (k == 2)
return 1;
if (k == 3)
return 2;
int res = 1;
while (k > 4) {
res *= 3;
k -= 3;
}
return res * k;
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐