java - 返回第 n 个数

标签 java

我正在尝试返回第 n 个数字。如果数字是 3 或 7 的倍数,则从 1 开始,则跳过该数字并获取下一个数字。但是,如果数字是 3 和 7 的倍数,则不会跳过该数字。

public int Multiple(int num){
int n1 = n % 3;
int n2 = n % 7;
int count = 1;
for (int i = 1; i <= n; i++) {
    if (n1 != 0 || n2 != 0)
        count++;
    if (n1 == 0 && n2 == 0)
        count++;
    else if (n1 == 0 || n2 == 0)
        continue;
}
return count;
}

最佳答案

这将完成工作:

public static int nthNumber(int nth) {
    int num = 1;
    for (int count = 1; count < nth;) {
        if ((++num % 3 == 0) == (num % 7 == 0)) count++;
    }
    return num;
}

前 20 个数字的输出:

 1 -> 1
 2 -> 2
 3 -> 4
 4 -> 5
 5 -> 8
 6 -> 10
 7 -> 11
 8 -> 13
 9 -> 16
10 -> 17
11 -> 19
12 -> 20
13 -> 21
14 -> 22
15 -> 23
16 -> 25
17 -> 26
18 -> 29
19 -> 31
20 -> 32

关于java - 返回第 n 个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026490/

相关文章:

Java 对象.等于

java - 安卓短信管理器

java - 将 Java 项目从 Eclipse 导出为带有附加引用 jar 的 JAR

java - Java 中有没有好的计数布隆过滤器实现?

java - 关闭 http 输入流

java - 我的 SQLite 数据库中的上下文有问题,但我找不到它。 (使用 SQLiteAssetHelper)

java - Java 流阶段是顺序的吗?

java - 克隆 Git 存储库时出现 Packfile 被截断错误

Java GUI - 不是 Swing

java - Spring Boot 和 buildResponseEntity()