hanoi塔算法
更新時間:2023-11-17
答案:Hanoi塔問題是一個經典的遞歸問題,其算法如下:1. 將n-1個盤子從A柱移(yí)動(dòng)到B柱。2. 將第n個盤子從A柱移(yí)動(dòng)到C柱。3. 將n-1個盤子從B柱移(yí)動(dòng)到C柱。其中,移(yí)動(dòng)盤子的規則是:每次只能移(yí)動(dòng)一個盤子,且大盤子不能放在小盤子上面。遞歸終止條件是只有一個盤子需要移(yí)動(dòng),此時直接將其從A柱移(yí)動(dòng)到C柱即可。代碼實作如下:void hanoi(int n, char A, char B, char C) { if (n == 1) { printf(Move disk %d from %c to %c\, n, A, C); return; } hanoi(n-1, A, C, B); printf(Move disk %d from %c to %c\, n, A, C); hanoi(n-1, B, A, C);}其中,A、B、C分別表示三個柱子的名稱。
12文章時間:2023-11-17