//递归简单的小例子
练习:
//计算1+2+。。。+1000的和
public class d {
int sum=0;
int i=1;
public void sum(){
sum+=i;
i++;
if(i<=1000){
sum();//递归就是调用自身
}
}
public static void main(String[] args) {
d s = new d();
s.sum();
System.out.println("计算结果是"+s.sum);
}
}
//===========================
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
下面我们用递归实现斐波那契数列
:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
求第n个数
//递归简单的小例子
public class d {
public static int sum(int n){
if(n==0){
return 0;
}
if(n==1 ||n==2){
return 1;
}
return sum(n-1)+sum(n-2);
}
public static void main(String[] args) {
// d d1 = new d();
System.out.println(d.sum(8)+"他的值");//因为他的方法是静态的,可以直接调用
System.out.println("ddd");
}
}
//======================
练习:
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推关键要抓住的是:
(1)递归出口
(2)地推逐步向出口逼近
得解。
求5的阶乘
add,subtract,multiply与+,-,*本质上是没有区别的.public class d {
public static int Mutiply(int n){
if(n==1||n==0){
return n;
}
return n*Mutiply(n-1);
}
public static void main(String[] args) {
// d d1 = new d();
System.out.println(d.Mutiply(5)+"他的值");//因为他的方法是静态的,可以直接调用
System.out.println("ddd");
}
}
//===============