#include<stdio.h>
void hanoi_ta(int n,char tal,char ta2,char ta3); /*函数原型*/
void main()
{
int n;
printf("请输入盘片数:");
scanf("%d",&n); /*输入盘片数*/
printf(“盘片的移动过程是(1、2和3分别代表木桩编号):\n”);
hanoi_ta(n,'1','2','3');
printf("\n");
}
void hanoi_ta(int n,char tal,char ta2,char ta3)
{
if(n==1) printf("%c→%c ",tal,ta2); /*一片盘时,直接移动*/
else
{
hanoi_ta(n-1,tal,ta3,ta2); /*n-1片盘由tal座移至ta3座*/
printf("%c→%c ",tal,ta2); /*最下面最大一片盘,直接移动*/
hanoi_ta(n-1,ta3,ta2,tal); /*n-1片盘由ta3座移至ta2座*/
}
}
void hanoi_ta(int n,char tal,char ta2,char ta3); /*函数原型*/
void main()
{
int n;
printf("请输入盘片数:");
scanf("%d",&n); /*输入盘片数*/
printf(“盘片的移动过程是(1、2和3分别代表木桩编号):\n”);
hanoi_ta(n,'1','2','3');
printf("\n");
}
void hanoi_ta(int n,char tal,char ta2,char ta3)
{
if(n==1) printf("%c→%c ",tal,ta2); /*一片盘时,直接移动*/
else
{
hanoi_ta(n-1,tal,ta3,ta2); /*n-1片盘由tal座移至ta3座*/
printf("%c→%c ",tal,ta2); /*最下面最大一片盘,直接移动*/
hanoi_ta(n-1,ta3,ta2,tal); /*n-1片盘由ta3座移至ta2座*/
}
}