漢諾塔:函數
移動規則:3d
分析:blog
move函數是一個遞歸函數,功能是:把x上n個圓盤移動到z上遞歸
代碼:io
#include <stdio.h> #include <stdlib.h> // 漢諾塔遞歸 void main() { int i,n; printf("請指定有幾層:\n"); scanf("%d",&n); printf("有%d層,移動過程以下:\n",n); move(n,'A','B','C'); } void move(int n,char x,char y,char z) { if(n < 0) printf("輸入錯誤,不成立!"); else if(n == 1) printf("%c——>%c\n",x,z); else { move(n - 1,x,z,y); printf("%c——>%c\n",x,z); move(n - 1,y,x,z); } }![]()