回溯法是怎么回事

liuzu2016 2012-06-17 09:07:47
和递归感觉区分不开来

我举个例子

f(n)的求解

f(n)=f(n-1)*n; (n>=2)

f(1)=1


递归求解

int f(int n)
{
if(n==1)
return 1;

return f(n-1)* n;

}


回溯怎么求解

...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
0c0c0f 2012-06-18
  • 打赏
  • 举报
回复
可以吧,子程序调用都用栈来实现的。
craboy1 2012-06-18
  • 打赏
  • 举报
回复
俺是新手,但回溯法给我感觉是解决迷宫和一个箱子装不同体积的解决方法。和递归有很大区别。阶乘用不了回溯法吧,就像不是所有算法都能用递归解决一样
W170532934 2012-06-18
  • 打赏
  • 举报
回复
回溯法只是习惯用递归去解决问题而已。但不代表是递归
赵4老师 2012-06-18
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
liuzu2016 2012-06-17
  • 打赏
  • 举报
回复
ls 回溯貌似是 有很多种状态,然后一个一个的试探

才叫回溯吧

对于我在主贴提出 问题,回溯怕是解决不了啊
0c0c0f 2012-06-17
  • 打赏
  • 举报
回复
int f(int n)
{
if(n==1)
return 1;
return f(n-1)* n;
}
自己直接调用自己或间接调用自己是递归,回溯因该用栈来完成。
liuzu2016 2012-06-17
  • 打赏
  • 举报
回复
up up

沉了啊

69,322

社区成员

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

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