递归
概念:递归是调用方法的一种方式
在Java语言中,方法自己调用自己就是递归
递归的特点
案例
递归案例:斐波那契数列
1、观察如下数列的规律,使用递归的方式获取第20个值应该是多少?
1 , 1, 2,3 ,5 ,8 ,13 ,21 ,34 ,55 … (斐波那契数列)
利用规律:前两个数相加的和是下一个数
public class feibonaqie {
public static void main(String[] args) {
System.out.println(getNum(20));
}
public static int getNum(int n){
if (n==1 || n==2){
return 1;
}else return getNum(n-1)+getNum(n-2);
}
}
递归案例2:
1、定义一个方法,求出n的m次方
n和m当作参数传给方法,根据传入的n和m的值返回对应的结果
public class Digui_exercise {
public static void main(String[] args) {
int s=getNum(2,3);
System.out.println(s);
}
public static int getNum(int n,int m){
if (m==1){
return n;
}else if (m==0){
return 1;
}else {
return n*getNum(n,m-1);
}
}
}
return n*getNum(n,m-1);
}
}
}
|