有关模数和退货声明的问题

时间:2017-02-05 19:31:32

标签: java if-statement return modulus

我对这个代码有两个问题。 有人可以解释一下,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;
   }
}

3 个答案:

答案 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,所以计数会增加。