下面是一个C语言的汉诺塔递归算法代码示例: #include<stdio.h> voidhanoi
下面是一个C语言的汉诺塔递归算法代码示例:
#include<stdio.h>
voidhanoi(intn,charfrom,charto,charaux){
if(n==1){
printf("Movedisk1from%cto%c\n",from,to);
return;
}
hanoi(n-1,from,aux,to);
printf("Movedisk%dfrom%cto%c\n",n,from,to);
hanoi(n-1,aux,to,from);
}
intmain(){
intn;
printf("Enterthenumberofdisks:");
scanf("%d",&n);
hanoi(n,'A','C','B');
return0;
}
以上代码使用递归的方式实现了汉诺塔问题的解决方法。函数hanoi
接受参数n
表示当前要移动的盘子数量,from
表示起始柱子,to
表示目标柱子,aux
表示辅助柱子。在每次递归中,将n-1个盘子从起始柱移动到辅助柱,然后将最后一个盘子从起始柱移动到目标柱,最后将n-1个盘子从辅助柱移动到目标柱。主函数中输入盘子数量并调用hanoi
函数进行求解。
版权声明
本文仅代表作者观点,不代表博信信息网立场。