标签:blog io ar sp div c log amp r
#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,这样就可以写出递推的关系。
标签:blog io ar sp div c log amp r
原文地址:http://www.cnblogs.com/wuyuewoniu/p/4007790.html