您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)

星拱北辰 发布时间:2020-01-31 23:28:39 ,浏览量:0

题目要求

P1887题目链接

在这里插入图片描述

分析

假设m为2,就是分为两组使之和最大,根据基本不等式, 已知x+y=k(k为常数),S=x*y,当x=y时,有S的最大值。

同样地,当一个数n被分为m份时,当每份数量相等,这m个数的乘积最大。 (不懂的反思反思自己基本不等式咋学的吧……)

所以,我们只需要使这m个数都相等就行了,所以有:q=n/m。

题目要求每个数都为整数,所以每个数要尽量的接近q。 另外,在Java/C中,整数间的n/m结果源于向下取整,所以这些数只有两种:

  • n/m
  • n/m +1

我们只需清楚n/m和n/m+1分别有多少就行了呗……

说明:字典序是从小到大!!!!!

所以先输出n/m+1,再输出n/m就完事!

AC代码(Java语言描述)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt(), n = scanner.nextInt();
        int mod = m % n;
        int division = m / n;
        StringBuilder result = new StringBuilder();
        for (int i = mod; i             
关注
打赏
1660750074
查看更多评论
0.0459s