汉诺塔

来源:互联网 发布:知乎回答能删除吗 编辑:程序博客网 时间:2024/06/14 20:26
#include<cstdio>int cnt=0;void hanoi(int n,char src,char tmp,char tag){if(n==1) printf("%d from %c to %c\n",n,src,tag);else {hanoi(n-1,src,tag,tmp);printf("%d from %c to %c\n",n,src,tag);hanoi(n-1,tmp,src,tag);}}void han(int n,char src,char tmp,char tag){if(n==1) cnt++;else{han(n-1,src,tag,tmp);        cnt++;han(n-1,tmp,src,tag);}}int main(){int n;scanf("%d",&n);han(n,'A','B','C');printf("%d\n",cnt);hanoi(n,'A','B','C');return 0;}