我对这个代码有两个问题。
有人可以解释一下,if语句究竟在做什么。我知道每次测试都是count
时必须增加,但我不确定这个n % i == 0
正在做什么。
我的第二个问题是,如何在控制台上打印return语句的答案?
int n = 10;
countFactors(n);
}
public static int countFactors(int n){
int count = 0;
for (int i = 1; i <= n; i++){
if (n % i == 0) //this line
count++;
}
return count;
}
}
答案 0 :(得分:2)
嗯,正如方法名称所暗示的那样,计数代表n
所具有的除数的数量。
if语句测试以下内容: n
可被i
整除吗?。换句话说:n/i
是一个整数吗?
如果你要使用:
if(n%i == 1)
相反,它会计算其中的数字:n/i has a remainder of 1
。
为了打印return语句,您可以在return
:
public static int countFactors(int n){
int count = 0;
for (int i = 1; i <= n; i++){
if (n % i == 0)
count++;
}
System.out.println(count);//adding this
return count;
}
答案 1 :(得分:2)
它计算范围1-n
中的除数数,例如:
如果n = 10
结果为4
,因为有4个除数:
1
2
5
10
以及如何在控制台中打印:
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
count++;
System.out.println(i);
}
}
System.out.println("Number or disivor = " + count);
您可以在此处了解:Table of divisors
答案 2 :(得分:1)
%运算符(称为余数或模数运算符)基本上将一个数字除以另一个数字,并为您提供余数而不是其他值。例如,如果你做4%2,它会给你0,因为2均匀地进入4。如果你做4%3它会给你1,因为那是4/3的剩余部分。另外看看这个网站:http://www.cafeaulait.org/course/week2/15.html
countFactors
方法循环1到n并包含n。如果你做10%1,你会得到0,因为一个均匀地进入10,所以计数会增加。