เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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");
  }
}
แก้ไขและรันโค้ด