我是编码的初学者。现在,我正在尝试不同的返回数据类型。
在这里,我正在尝试制作一种方法,该方法打印出已解析数字的因子列表,但是此代码似乎无效。该方法适用于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;
}
答案 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;
}
您的代码存在的问题是,您只返回了一个恰好是最后一个因素的数字。