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
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
ncó 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
nban đầ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");
}
}