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
王晓东《计算机算法设计与分析》