/*
汉诺塔问题
*/
#include <stdio.h>
void Towers(int n, char A, char B, char C){
if(n==1){ //递归出口
printf("%s%c%s%c\n\n","移动盘 1 从 ",
A," 到盘 ",C);
return;
}
//把n-1个盘从A盘借助B盘移动到C盘
Towers(n-1,A,C,B);
//把圆盘n从A盘直接移动到C盘
printf("%s%d%s%c%s%c\n\n","移动盘 ",n,
" 从盘 ",A," 到盘 ",B);
///把n-1个盘从C盘借助A盘移动到B盘
Towers(n-1,C,B,A);
}
void main(void){
Towers(4,'A','C','B');
getch();
}
10-17
1063