CHAWTeam
目錄:DICE C語言程式破解
河內塔問題(Tower of Hanoi)是由法國數學家盧卡斯(Édouard Lucas)引進的數學謎題:
在 3 根桿子中,有 1 桿上有 N 個從下數起由大而小的穿孔圓盤。
在每次只能移動一個圓盤,且大盤不能疊在小盤之上的規則之下,你需要以最少的次數將這 N 個圓盤全部移到另一根桿子上。
輸入數字為河內塔高度,請輸出移動過程,最後輸出共移動了幾次,格式如範例輸出所示。
範例輸入:
3
範例輸出:
1: 將第 1 個圓盤由 A 移到 C
2: 將第 2 個圓盤由 A 移到 B
3: 將第 1 個圓盤由 C 移到 B
4: 將第 3 個圓盤由 A 移到 C
5: 將第 1 個圓盤由 B 移到 A
6: 將第 2 個圓盤由 B 移到 C
7: 將第 1 個圓盤由 A 移到 C
移動 3 層河內塔共需移動 7 次
#include <stdio.h>
int move(int n) {
for (int i = 0; i < n; i++) {
printf("%d: ", i);
}
for (int j = n; j )
}
int main() {
int n;
scanf("%d", &n);
printf("%d\n", move(n));
return 0;
}
4
5
6
7
8
9
-1
7
20
61
182
547
1640
查看我們在HackMD上的所有筆記
目錄:DICE C語言程式破解