始める無料で始める

コラッツ

数学のちょっとした豆知識として、シンプルな規則から大きな結果が生まれることがあります。たとえば Collatz Conjecture(コラッツ予想)は、2つの簡単な規則で任意の整数を 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");
  }
}
コードを編集して実行