#include void hanoi taf( int n, char tal, char ta2, char ta.3);/*函数原型* oid main( Int n printf("请输入盘片数:") scanf("%d", &n) /*输入盘片数* printf(“盘片的移动过程是(1、2和3分别代表木桩编号):mn”); hanoi ta(n, 1, 2, 3) printf("n"); void hanoi ta(int n, char tal, char ta2, char ta3) ifn=l) printf("c→%c"tal,ta2);/一片盘时,直接移动* else hanoi ta(n1,al,ta3ta2);/n-1片盘由ta座移至ta3座* printf("%c→%c"tal,ta2);/*最下面最大一片盘,直接移动*/ hanoi ta(n-1,ta3,ta2,ta),/*n-1片盘由ta3座移至ta2座*
#include 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 座*/ } }