Bắt đầu ngayBắt đầu miễn phí

Collatz

Một sự thật thú vị trong toán học là những quy tắc đơn giản có thể dẫn đến hệ quả lớn. Ví dụ, Giả thuyết Collatz đặt câu hỏi liệu hai quy tắc đơn giản có thể rút gọn bất kỳ số nguyên nào về 1 hay không.
Phát biểu thường là như sau:

  • Với số chẵn, chia đôi
  • Với số lẻ, nhân 3 rồi cộng 1
    Hãy cùng kiểm chứng!

Lưu ý: Nếu bạn gặp lỗi hết thời gian chạy, hãy kiểm tra kỹ logic của câu lệnh if-else (hoặc xem Gợi ý).

Bài tập này là một phần của khóa học

Java trung cấp

Xem khóa học

Hướng dẫn bài tập

  • Nhập điều kiện kết thúc phù hợp.
  • Gọi một phương thức để kiểm tra n có phải số chẵn không.
  • Xử lý đúng trường hợp số lẻ - điều này chỉ nên kích hoạt nếu n ban đầu là số lẻ.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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");
  }
}
Chỉnh sửa và Chạy Mã