题目要求
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
关注
打赏
热门博文
- 【Linux】Ubuntu20.04安装和卸载MySQL8
- 【Linux】Ubuntu 20.04 报错 curl: (23) Failure writing output to destination 的解决方法
- 【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法
- 【JavaScript】处理 @parcel/transformer-js: Browser scripts cannot have imports or exports.
- 【Node.js】Windows环境安装配置NVM和Node.js
- 【Python】处理TypeError: Plain typing.NoReturn is not valid as type argument
- 【Python】Matplotlib可视化50例
- 【C语言】C语言修改MySQL数据库
- 【Java】从默认包导入类和对象报错的解决方法
- 【Java】panel.getGraphics()报错空指针异常的解决方法