4-24 可重复最优分解问题
问题描述
设 n 是一个正整数。现在要求将 n 分解为若干个自然数的和,且使这些自然数的乘积最
大。
对于给定的正整数 n,编程计算最优分解方案。
数据输入:
第 1 行是正整数 n。
Java
import java.util.Scanner;
public class KeChongFuZuiYouFenJie {
private static int n;
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while (true){
n = input.nextInt();
compute();
}
}
private static void compute(){
int r = n%3;
int t = 1;
int k = n/3;
if(r == 1) {t = 4; k = (n-4)/3;}
if(r == 2) {t = 2; k = (n-2)/3;}
long result = t*(long)Math.pow(3,k);
System.out.println(result);
}
}
Input & Output
10
36
Reference
王晓东《计算机算法设计与分析》

本文探讨了如何将正整数 n 分解为若干自然数之和,以求得乘积最大。通过使用贪心算法,解决可重复最优分解问题。文章提供了Java实现的输入输出说明,并引用了王晓东《计算机算法设计与分析》作为参考。
7179

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



