请问运用递归关系的三个条件是什么?

如题所述

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个回答  2020-12-29

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)数据的结构形式是按递归定义的。

如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述。

参考资料来源:百度百科-递归

本回答被网友采纳
第2个回答  2021-01-08

1、可以把要解决的问题转化为一个新问题,而这个新的题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。

2、可以应用这个转化过程使问题得到解决。

3、必定要有一个明确的结束递归的条件。

扩展资料

递归算法一般用于解决三类问题:

(1)递归定义数据。(Fibonacci函数)。

(2)采用递归算法实现问题求解方法。

这类问题没有明显的递归结构,但递归比迭代更容易解决,如河内问题。

(3)递归定义数据的结构形式。

例如二叉树、广义表等,由于结构本身固有的递归特性,它们的操作都可以被递归描述。

参考资料来源:百度百科-递归

本回答被网友采纳
第3个回答  推荐于2017-09-29
1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
2、可以应用这个转化过程使问题得到解决。
3、必定要有一个明确的结束递归的条件。

参考资料:http://www.softhouse.com.cn/news/show/8977.html

本回答被提问者采纳
第4个回答  2008-12-06
我总结的递归三个条件是:
1.具有返回值,且返回类型跟参数类型相容.
2.具有结束条件.
3.自身调用.
我觉得递归就是,不断地自身调用自身,但是不能没完没了,那样就成了死循环了,就是必须有结束条件,让它跳出循环。(一般来说跳出循环的体就是直接return一个返回值)
你需要一个可以找到规律的循环条件,并且在循环体里要做的同一件事情,这时候可以用递归来实现,这是我的想法,供楼主参考。