汉诺塔
来源:互联网 发布:excelhome数组 编辑:程序博客网 时间:2024/04/29 21:29
#include<stdio.h>
//把n个盘子从a挪到c以b作为中转
void hanno(int n, char a, char b, char c)
{
if(n<=0) return;
//把n-1个从a挪到b,用c作为中转
hanno(n-1,a,b,c);
//把n从a挪到c
printf("%d: %c-->%c\n",n,a,c);
//把n-1个从b挪到c,用a作中转
hanno(n-1,b,a,c);
}
int main()
{
int n;
printf("请输入盘子的数量:");
scanf("%d",&n);
hanno(n,'a','b','c');
}
//把n个盘子从a挪到c以b作为中转
void hanno(int n, char a, char b, char c)
{
if(n<=0) return;
//把n-1个从a挪到b,用c作为中转
hanno(n-1,a,b,c);
//把n从a挪到c
printf("%d: %c-->%c\n",n,a,c);
//把n-1个从b挪到c,用a作中转
hanno(n-1,b,a,c);
}
int main()
{
int n;
printf("请输入盘子的数量:");
scanf("%d",&n);
hanno(n,'a','b','c');
}