有n个环的汉诺塔问题:
void tranf(int n, char a, char b, char c)
{
if(n == 1)
printf("%c=>%c\n",a,c);
else
{
tranf(n-1, a, c, b);
tranf(1, a, b, c);//此处使用printf("%c=>%c\n",a,c)也是可以的; 不得不承认熟练造就完美!
tranf(n-1, b, a, c);
}
}
主函数:
int main()
{
int n;
printf("please input the numbers of rings:\n");
scanf("%d", &n);
tranf(n,'A', 'B', 'C');//三个盘:A B C盘,A盘放置原先的环;C盘放置最后的环;B环为过渡盘
system("pause");
return 0;
}