【问题标题】:I need some help with a Java recursion problems我需要一些有关 Java 递归问题的帮助
【发布时间】:2011-04-09 19:26:33
【问题描述】:

这是我的第一个问题:

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
  • c。 3(这是正确答案)
  • d. 10

X 等于 84,y 等于 21。所以我通过 Algorithm 类运行它们。 84 不小于 21 所以我跳过那个 if 语句。 84 不相等,所以我跳过该语句。我去返回 gcd(y, x mod y)。我不明白什么是 mod,你怎么知道它的意思?

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

  • A. 5
  • 乙。 10 我选择了 ten ,因为 x 大于 y 并且在处理到 if 语句时。它返回值十。 if 语句确实运行除了 return 语句之外的任何东西。
  • C. 15 答案是 15。
  • D. 20

【问题讨论】:

  • 第一次发帖:if (y == 0) ==:比较,=:赋值。和 (x % y),而不是 (x mod y),用于 Java 代码。好吧 - 方法头是完整的伪代码,而不是 Java。但是,我的印象是,答案 b 对于问题 1 是正确的。

标签: java loops recursion


【解决方案1】:

modmodulo 函数。当您将两个整数相除时,剩下的就是。例如,

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      x mod y 不是有效的 Java,x % y 是,它意味着模数;如果在 x 除以 y 之后剩下什么。

      顺便说一句,this is the answerthe answer is 15 是什么意思?更好地思考问题并解释您自己的答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-14
        • 2021-11-29
        • 1970-01-01
        • 2011-02-02
        • 2022-11-28
        • 2011-02-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多