递归函数通常是用来解决什么问题的?

2023-06-17 03:25

C语言中 递归函数通常是用来解决什么问题的?
2023-06-17 07:42
其实思路很简单,编程语言中的递归对应数学中的递推式。
这里的递推式是一伏链个比较抽象的概念
举个简单例子:求解阶乘,其递推式是,f(n)=n*f(n-1)
再举个抽象例子:汉诺塔问题缺春孙,森唯若要解决n个汉诺塔的问题,需要先解决n-1个汉诺塔的问题,那么这就可以构造出一个递推式,其实也有点动态规划、分治的意思。
一言以蔽之:可以用数学语言表达成递推式的均可以用递归函数解决。
更多回答
递归式解决逻辑问题的。基本思想是::把规模大的、较难解决的问题变成规模较小的、易解决的同一问题。规模较小的问题又变成规模更小的问题,高凯并且小到一定程度可以直接得出它的解,从而得到原来问题的解。
C有一个汉诺塔,就是非用递归才能解决的一个问题。
利用递归算法解题,首先要对问题的以下三个方面进行分析:
一、决定问题规模的参数。需要用斗拆递归算法解决的问题,其规模通常都是比较大的,在问题中决定规模大小(或问题复杂程度)的量有哪些?把它们找出来。

二、问题的边界条件及边界值。在什么情况下可以直接得出问空念枣题的解?这就是问题的边界条件及边界值。

三、解决问题的通式。把规模大的、较难解决的问题变成规模较小、易解决的同一问题,需要通过哪些步骤或等式来实现?这是解决递归问题的难点。
热门问答