java - 如何在给定的 this 中找到最大的模数
问题描述
我想做的是在列表中找到最大的模
到目前为止,这是我的代码:
import java.util.*;
public class p2 {
public static void main(String[] args) {
ArrayList<Integer> ar = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
for(int i = 1; i <= n; i++) {
int mod = i % m;
ar.add(mod);
}
System.out.println(Collections.max(ar));
}
}
例如
5 3
输出为 2
因为 1-5 除以 3 的最大模数是 2
有没有更快的方法可以在不使用蛮力的情况下做到这一点?
解决方案
在 range 中的所有数字中1-n
,最大的模数m
是m - 1
,除了 if n < m
,在这种情况下它是n
,所以:
int maxModulo = Math.min(n, m-1);
上面当然假设n >= 1
和m >= 1
。
推荐阅读
- java - Java + Appsync Graphql API - 如何使用 Java 从 Schema 中识别 aws 授权模式?
- javascript - 带有 vuejs 的信用卡的 4 位空格
- stocktwits - stock-twits 是否通过批量 API 为多家公司提供 twits
- javascript - 我如何知道多个循环内的回调何时完成?
- javascript - 布尔逻辑:如何在一个语句中正确链接 if else(而不是两个嵌套的 if 语句)
- php - WP rewrite_rule 匹配为空(使用排除模式)
- mysql - 根据产品属性可用性和库存 mysql 排序
- php - 如果 AWS_SECRET_KEY 必须存储在 EBS 环境变量中,AWS Secrets Manager 如何在 Elastic Beanstalk 应用程序中安全使用?
- python-3.x - 如何在DF中对除第一个之外的列索引(列名)进行排序
- python - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'.data/multi30k/train.fr'