您的位置:首页 > 编程语言 > Java开发

Java-递归算法思想

2015-10-04 16:43 537 查看
递归算法设计的基本思想:

对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。

在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

关键要抓住的是:

(1)递归出口(结束条件)

(2)地推逐步向出口逼近(递推公式)
例子:

Fibonacci(斐波那契)数列:1,1,2,3,5,8,13……

要求:找出数列中指定index位置的数值

package XiaoMi;

public class test10 {

/**
* @param args
* 递归算法
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(func(7));
}

public static int func(int n){
int result =0;
/*if(n==1){     //递归遍历结束条件,即出口
return	result =1;

}else{
result =func(n-1) * n;    //逐步逼近
return result;
}*/
if(n==1){
result =1;
}else if(n==2){
result =1;
}else{
result =func(n-1)+func(n-2);
}
return result;
}

}
运行结果:

13
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: