#include <stdio.h>
void Honia (int n, char a, char b, char c);
int count;//统计移动次数
int main ()
{
int n;
count = 0;
scanf("%d", &n);
Honia(n, 'a', 'b', 'c');
printf("%d\n", count);
return 0;
}
void Honia (int n, char a, char b, char c)
{
if(n == 1)
printf("%c --> %c\n", a, b);
else
{
Honia(n-1, a, c, b);
printf("%c --> %c\n", a, b);
Honia(n-1, c, b, a);
}
count++;
}
总结:汉诺塔问题适用于本次的数据结果可以由上次(或者上几次)的数据结果得到,采用递归的方式进行解决计算。