# include<stdio.h>
/*搬动n个盘,a-->b,c为中间过渡 */
void hanoi(int n,char a,char b,char c)
{
if(n==1)//只有一个盘子,直接转移
printf("%c-->%c\n",a,b);
else{
hanoi(n-1,a,c,b);//现将上面的n-1个移到C上,此时b为过渡
printf("%c-->%c\n",a,b);//将最下面的移到b上
hanoi(n-1,c,b,a);//将刚移到c上的n-1个盘子移到b上,此时a为过渡
}
}
int main(void)
{
int n;
printf("input the number of disk:");
scanf("%d",&n);
printf("the steps for%d disk are:\n",n);
hanoi(n,'a','b','c');
return 0;
}
C语言实现汉诺塔
最新推荐文章于 2023-06-14 21:27:25 发布