我需要一些Java递归问题的帮助

时间:2011-04-09 19:26:34

标签: java loops recursion

这是我的第一个问题:

gcd(x,y)
  if (x < y)
    gcd(y,x)
  else
    if (y = 0)
      return x
    else
      return gcd(y, x mod y)

这是我的第二个问题:

public static int Test2(int x, int y) {
  if (x > y) {
    return 10;
  } else {
    return Test2(x-5, y+5) + 5;
  }
}

问题是:gcd(84, 21)的回复是什么?

  • 一个。 84
  • 湾21
  • ℃。 3(这是正确答案)
  • d。 10

X等于84,y等于21.所以我通过Algorithm类运行它们。 84不小于21所以我跳过if if语句。 84不相等所以我跳过那个陈述。我去返回gcd(y,x mod y)。我不明白什么是mod,你怎么弄清楚它意味着什么?

第二个问题! 问题:Test2(18,5)返回了什么?

  • 甲。 5
  • B中。 10 我选择十,因为x大于y并且在处理到if语句时。它返回值10。 if语句确实运行除return语句之外的任何内容。
  • ℃。 15答案是15。
  • d。 20

3 个答案:

答案 0 :(得分:0)

x mod y不是有效的Java,x % y是,它意味着模数;如果在x乘y整数除法后留下的话。

顺便问一下,您对this is the answerthe answer is 15的意思是什么?最好通过思考问题并解释自己的答案。

答案 1 :(得分:0)

modulo运算符返回divison操作的剩余部分。例如3 mod 2 = 1因为1是余数。 %通常用作mod的符号。在此示例中,84 mod 21等于0,因为21将4次均分为84次。

答案 2 :(得分:0)

modmodulo函数。当你划分两个整数时,剩下的就是剩下的。例如,

1 mod 3 = 1
2 mod 3 = 2
3 mod 3 = 0
4 mod 3 = 1
10 mod 4 = 2

10是第二个问题的正确答案,你的论证是正确的。

相关问题