MulaiMulai sekarang secara gratis

Collatz

Sebuah fakta menarik dalam matematika adalah bahwa aturan-aturan sederhana dapat menghasilkan konsekuensi besar. Misalnya, Dugaan Collatz menanyakan apakah dua aturan sederhana dapat mengubah bilangan bulat apa pun menjadi 1.
Pernyataannya biasanya sebagai berikut:

  • Untuk bilangan genap, bagi dua
  • Untuk bilangan ganjil, kalikan dengan 3, lalu tambah 1
    Mari kita uji!

Catatan: Jika Anda mengalami batas waktu eksekusi kode, periksa kembali logika pernyataan if-else (atau lihat Petunjuk).

Latihan ini adalah bagian dari kursus

Java Menengah

Lihat Kursus

Petunjuk latihan

  • Masukkan kondisi terminasi yang sesuai.
  • Panggil sebuah metode untuk memeriksa apakah n genap.
  • Tangani kasus ganjil dengan benar—ini seharusnya hanya terjadi jika n yang asli adalah ganjil.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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");
  }
}
Edit dan Jalankan Kode