首页 > 代码库 > 汉诺塔01
汉诺塔01
#include<stdio.h>void han(int n,char a,char b,char c){ if(n==1) { printf("%c--%c\n",a,c); } else { han(n-1,a,c,b); printf("%c--%c\n",a,c); han(n-1,b,a,c); }}int main(){ int n; char a,b,c; a=‘A‘; b=‘B‘; c=‘C‘; scanf("%d",&n); han(n,a,b,c);}
我们将三根柱子分别命名为A,B,C,
当只有一个盘子的时候,是从A直接放到C上的;
当有两个盘子的时候,是A--B;
A--C;
B--C;
当有三个盘子的时候 是
A--C;
A--B
C--B
A--C
B--A
B--C
A--C
所以,当有n个盘子的时候,第n-1个盘子都是通过A--C--B,B--A--C,这样就可以写出递推的关系。
汉诺塔01
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。