用返回类型int打印一个数字的所有因子的列表的方法

时间:2018-11-30 10:14:16

标签: java

我是编码的初学者。现在,我正在尝试不同的返回数据类型。

在这里,我正在尝试制作一种方法,该方法打印出已解析数字的因子列表,但是此代码似乎无效。该方法适用于void返回类型(通过添加System.out.println())。有人可以帮忙吗?

    public static int printFactorsInt(int number) {

    if (number < 1) {
        return -1;
    }

    int factor = 0;

    for (int i =1 ; i <= number; i++) {

        if ((number % i) == 0) {
            factor = i;
        }
    }

    return factor;
}

2 个答案:

答案 0 :(得分:4)

要打印数字的所有因数,您还应该具有System.out.print(factor +“”);在for循环中。

public static int printFactorsInt(int number) {

    if (number < 1) {
        return -1;
    }

    int factor = 0;

    for (int i =1 ; i <= number; i++) {

        if ((number % i) == 0) {
            factor = i;
            System.out.print(factor + " ");
        }
    }

    return factor;
}

答案 1 :(得分:0)

您是说数字的所有因素吗?如果是,则可以使用list捕获作为因子的数字,然后返回该list

public static List<Integer> printFactorsInt(int number) {
    List<Integer> listOfFactors = new ArrayList<>(); 

    for (int i = 1; i <= number; i++) {
        if ((number % i) == 0) {
            listOfFactors.add(i);
        }
    }
    return listOfFactors;
}

您的代码存在的问题是,您只返回了一个恰好是最后一个因素的数字。