• 【贪心】最大乘积-贪心-高精度-java


    问题 G: 【贪心】最大乘积

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 34  解决: 10
    [提交][状态][讨论版]

    题目描述

     一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,…。

    现在你的任务是将指定的正整数n分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。

    输入

    只一个正整数n,(3≤n≤10000)。

    输出

    第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。

    第二行是最大的乘积。

    样例输入

    10
    

    样例输出

    2 3 5
    30
    思路:要求乘积最大,就得让每一个数尽量地接近,从2,开始分,最后剩下的数依次从后面加到前面的数上面(每个数加上1)。例如10,分开后是2,3,4,剩下1,加到最后面的4上成2,3,5.如果是18,依次是2,3,4,5剩下4,依次加到前面的数上是3,4,5,6.
    代码:
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner scc=new Scanner(System.in);
            BigInteger big1=new BigInteger("1");
            int a[]=new int[3000];
            int n;
            int sum=2;
            a[0]=2;
            n=scc.nextInt();
            int i=1;
            int j=0;
            while(true){
                a[i]=a[i-1]+1;
                if(sum+a[i]>n){
                    break;
                }else{
                    sum+=a[i];
                }
                i++;
            }
            a[i]=n-sum;
            j=i-1;
            while(a[i]!=0&&j>=0){
                a[j]++;
                a[i]--;
                j--;
            }
            j=i-1;
            while(a[i]!=0&&j>=0){
                a[j]++;
                a[i]--;
                j--;
            }
            for(int k=0;k<i-1;k++){
                System.out.print(a[k]+" ");
                big1=big1.multiply(BigInteger.valueOf(a[k]));
            }
            System.out.println(a[i-1]);
            big1=big1.multiply(BigInteger.valueOf(a[i-1]));
            System.out.println(big1.toString());
            
    
        }
    
    }
     
  • 相关阅读:
    纯JavaScripst的全选、全不选、反选 【转】
    Java 文件和byte数组转换
    nc命令使用详解
    mtr 命令详解
    Nginx主动检测方案---Tengine
    Apache相关安全设置
    tomcat APR的配置
    Vsftpd 配置详解
    FTP主动模式和被动模式的区别
    iptables配置详解
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5695208.html
Copyright © 2020-2023  润新知