开始使用免费开始使用

Collatz

数学中一个有趣的小事实是:简单的规则也可能带来巨大的结果。例如,Collatz 猜想在问,两个简单的规则是否能把任意整数降到 1
它通常表述为:

  • 对偶数,除以 2
  • 对奇数,乘以 3 再加 1
    我们来试一试吧!

注意:如果出现代码超时,请仔细检查 if-else 语句的逻辑(或查看提示)。

本练习是课程的一部分

Java 中级

查看课程

练习说明

  • 输入合适的"终止"条件。
  • 调用一个方法检查 n 是否为偶数。
  • 正确处理奇数情形——仅当原始的 n 为奇数时才应触发。

交互式实操练习

通过完成这段示例代码来试试这个练习。

class Collatz {
  static boolean isEven(int n) {
    return n % 2 == 0;
  }
  
  public static void main(String[] args) {
    int n = 1634;
    int i = 0;
    System.out.print(n);
    // Enter the appropriate termination condition
    while (____) {
      // Call a method to check if n is even
      if (____(n)) {
        System.out.println(" is even");
        n /= 2;
      } // Handle the odd case correctly. All non-even integers are odd
      ____ {
        System.out.println(" is odd");
        n = n * 3 + 1;
      }
      System.out.print(n);
      i += 1;
    }
    System.out.println(" reached in " + i + " steps");
  }
}
编辑并运行代码