Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C Tower of Hanoi (หอคอยฮานอย)


Tower of Hanoi เป็นปริศนาคณิตศาสตร์ มี 3 เสา และแผ่นวงกลมขนาดต่างกัน วางซ้อนกันบนเสาแรก เรียงจากเล็กไปใหญ่ (เล็กสุดบนสุด) เป้าหมาย: ย้ายทั้งหมดไปเสาที่ 3 ตามกติกา:

  • ย้ายได้ทีละ 1 แผ่น
  • ย้ายได้เฉพาะแผ่นบนสุดของเสาใดเสาหนึ่ง
  • ห้ามวางแผ่นใหญ่บนแผ่นเล็ก

ตัวอย่าง

Input - 3

Output - A to B, A to C, B to C, A to B, C to A, C to B, A to B

Explanation - ใช้ Recursive Function แก้ Tower of Hanoi

ตัวอย่าง

#include <stdio.h>
void TOH(int n, char x, char y, char z) {
    if (n > 0) {
        TOH(n - 1, x, z, y);
        printf("\n%c to %c", x, y);
        TOH(n - 1, z, y, x);
    }
}
int main() {
    int n = 3;
    TOH(n, 'A', 'B', 'C');
}

ผลลัพธ์

A to B
A to C
B to C
A to B
C to A
C to B
A to B