繁体   English   中英

如何打印出满足条件的 n 个数字

[英]How can I print out n numbers that satisfy the condition

我编写了一个代码,它将返回 1 或 4 作为 output,这里是

public static int findSum(int k) {
            int sum = 0;
            boolean foundNonZero = false;
            for (; k != 0; k /= 10) {
                if (foundNonZero) {
                    sum += (k % 10)*(k % 10);
                } else {
                    foundNonZero = k % 10 != 0;
                }
            }
            return sum;
        }

现在,我正在尝试编写一个 function public static long[] firstK(int k) ,它将返回从 0 开始的k个数字,满足findsum = 1 的条件。

尽管阅读了 Java 语法和信息,但我仍在努力理解如何去做。 到目前为止,这是我的代码:

public static long[] firstK(int k) {
    while (int x = 0;) {
        if (findSum(x) = 1;)
            System.out.println(x);
        } 

我知道 int(k) 没有用于此,但我不知道如何实现它。 任何帮助将不胜感激:)

也许是这样的:

public static List<Integer> firstK(int k) {
    List<Integer> result = new ArrayList<>();
    for (int x = 0 ; result.size() < k ; x++)
        if (findSum(x) == 1)
            result.add(k);
    return result;
}

如果你真的想要一个数组而不是一个列表,我仍然会使用一个列表来计算结果。 然后,我将从该列表中创建一个数组并将其作为函数的结果返回,以使 function 返回一个int[]long[] 我不明白你为什么要返回long[]List<Long>而不是int[]List<Integer> ,我怀疑所涉及的代码是否有机会迭代超过最大 integer 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM