我有以下Java代码,我想了解它的计算方式。
我知道它打印出1,1,0,0;
但是根据我自己的“计算”,它应该打印出类似3,4,10的东西,当然我的思维方式一定是错的,但我不是太确定了,我的错误是什么。
无论如何,代码是:
public class Q11aFrom2013 {
public static void main(String[] args) {
int[] r = { 2, 3, 7, 12, 10 };
for (int i = 0; i < r.length - 1; i++)
System.out.println(f(r[i + 1]));
}
public static int f(int r) {
return r % 2;
}
}
此外,我记下了自己的计算器,请随意查看下面的图片,以便查看或了解并告知我我做错了什么,提前感谢:
答案 0 :(得分:2)
问题是,您要返回的是您在那里发送的号码的模数。这是除以%(在你的情况下为2)之后的数字的剩余部分。
因此,您将看到的唯一结果是1表示奇数,0表示偶数(余数除以2)。
答案 1 :(得分:2)
取r [i + 1]值并将模数打印为2。
所以:
3 modulo 2 == 1
== 2 * 1 + 1 7 modulo 2 == 1
== 2 * 3 + 1 12 modulo 2 == 0
== 2 * 6 + 0 10 modulo 2 == 0
== 2 * 5 + 0