关于汉诺塔用递归方法求解的问题

dlmuxwj 2016-06-09 12:56:30
#include<stdio.h>

void hanoi(int n,char a,char b,char c);

int main(void)
{
int n;
printf("请输入n来解决n阶汉诺塔问题\n");
scanf("%d",&n);
hanoi(n,'a','b','c');
return 0;
}
void hanoi(int n,char a,char b,char c)
{
if(n==1){
printf("Move disk %d from %c to %c\n",n,a,c);
}
else{
hanoi(n-1,a,c,b);
printf("Move disk %d from %c to %c\n",n,a,c);
hanoi(n-1,b,a,c);

}
}
以上是代码,用红色标记的区域我没有弄懂是什么意思,望大神能给我说说这个hanoi 函数执行的过程
...全文
141 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlmuxwj 2016-06-09
  • 打赏
  • 举报
回复
谢谢版主,我能弄懂
小灸舞 版主 2016-06-09
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧