1、可以把要解决的问题转化为一个新问题,而这个新的题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
2、可以应用这个转化过程使问题得到解决。
3、必定要有一个明确的结束递归的条件。
例如:
public class X {
public static void main(String[] args){
int x =new X(). x(100);
System.out.println(x);
}
//1~n 的累加递归
public int x(int n){
return n>1?n+x(--n):n;
}
}
扩展资料
设(a0,a1,...,ar,...)是一个序列,把该序列中的ar和它前面的几个ai(0≤i<r)关联起来的方程一个递归关系。如关系式:ar=3ar-1 (r≥1)和错排数,Dn=(n-1)(Dn-1+Dn-2) (n=3,4,...),都是递归关系。
有时也称递归关系式为差分方程。为了能从递归关系式计算出序列的每一项,必须知道序列开始的一个或几个数,称这样的数为初始条件或初始值。
在许多情况下,得到递归关系式本身就是朝解决一个计数问题迈了一大步。即使不能从这个递归关系式很快地解出它的一般表达式,这也是相当不错的了。这是因为采取逐步计算的方法可以得到序列各项的值。有些例子说明,没有递归关系,计算的可能性根本就不存在。
1、可以把要解决的问题转化为一个新问题,而这个新的题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
2、可以应用这个转化过程使问题得到解决。
3、必定要有一个明确的结束递归的条件。
例如:
public class X {
public static void main(String[] args){
int x =new X(). x(100);
System.out.println(x);
}
//1~n 的累加递归
public int x(int n){
return n>1?n+x(--n):n;
}
}
扩展资料:
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。
这类问题虽则本身没有明显的递归结构,但用递归求解比迭代求解更简单,如Hanoi问题。
(3)数据的结构形式是按递归定义的。
如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。
参考资料来源:百度百科-递归
本回答被网友采纳1、可以把要解决的问题转化为一个新问题,而这个新的题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
2、可以应用这个转化过程使问题得到解决。
3、必定要有一个明确的结束递归的条件。
扩展资料
递归算法一般用于解决三类问题:
(1)递归定义数据。(Fibonacci函数)。
(2)采用递归算法实现问题求解方法。
这类问题没有明显的递归结构,但递归比迭代更容易解决,如河内问题。
(3)递归定义数据的结构形式。
例如二叉树、广义表等,由于结构本身固有的递归特性,它们的操作都可以被递归描述。
参考资料来源:百度百科-递归
本回答被网友采纳