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");
}
}