递归
概念:递归是调用方法的一种方式
在Java语言中,方法自己调用自己就是递归
递归的特点
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvEJQDqd-1646403394331)(C:\Users\12994\Desktop\笔记整理\整理复习\递归.assets\wpsEC2D.tmp.jpg)]](https://img-blog.csdnimg.cn/997791487ea34cf8a282052a4d889379.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUElLYXBpa2FhYWE=,size_20,color_FFFFFF,t_70,g_se,x_16)
案例
递归案例:斐波那契数列
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);
}
}
}
|