開始使用免費開始

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");
  }
}
編輯並執行程式碼