您的位置:首页 > 其它

C 语言程序设计实践 7.9 汉诺塔

2014-12-11 20:19 246 查看


AC代码:

#include <stdio.h>
#include <math.h>
void Hanoi (int n,char A[],char B[],char C[]);
void move (char a[],char b[]);
int main()
{
int n,t;
char A[20],B[20],C[20];
scanf("%d %s %s %s",&n,A,B,C);
t=pow(2,n)-1;
printf("%d\n",t);
Hanoi(n,A,B,C);//把n个盘从A借助B移到C
return 0;
}

void Hanoi (int n,char A[],char B[],char C[])
{
if (n==1)
move(A,C);
else{
Hanoi (n-1,A,C,B);//那就得先把n-1个盘先从A借助C移到B
move(A,C);//再把剩下的那个盘从A直接移到C
Hanoi (n-1,B,A,C);//接着把那n-1个盘从B借助A移到C
}
}

void move (char a[],char b[])
{
printf("%s->%s\n",a,b);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: