语言:C环境:VC++6.0 #include void main() { void hanoi(int n,char A,char B,char C); int n; printf ("the num of disk:"); scanf ("%d",&n); printf ("the step to moving %d disks:\n",n); hanoi (n,'A','B','C'); } void hanoi(int n,char A,char B,char C) { void move(char x, char y); if(n==1) move(A,C); else hanoi(n-1,A,C,B), move(A,C), hanoi(n-1,B,A,C); // n!=1 ? hanoi(n-1,A,C,B),move(A,C),hanoi(n-1,B,A,C):move(A,C);//n==1?move(A,C):hanoi(n-1,A,C,B),move(A,C),hanoi(n-1,B,A,C); } void move(char x, char y) { printf("%c-->%c\n",x,y); }
汉诺塔-递归
2015-08-30 23:11:43 来源: 网友分享