方法的递归调用
概念:属于方法的自身调用
例子:
1.阶乘的计算
// 10!
// 递归 ,方法本身调用方法本身
// 注意,防止死循环 设计好出口
System.out.println(getNum(5));
//getNum(5)
//5*getNum(4)
//5*4*getNum(3)
//5*4*3*getNum(2)
//5*4*3*2*getNum(1)
//求一个数的阶乘
public static int getNum(int num){
if(num==1){
return 1;
}
else{
return num * getNum(num-1);
}
2.斐波那契数列
//1 1 2 3 5 8 13 21.....
//斐波那契数列 第n位的斐波那契数
//0.618
//n-1 n-2
public static int getFnum(int n){
if(n==1 ||n==2){
return 1;
}else{
return getFnum(n-1)+getFnum(n-2);
}
}
3.最大公约数和最小公倍数
//求两个数的最大公约数
//100,86
//两个整数的最大公约数等于其中 较小的那个数 和两个数的相除余数的最大公约数
//getNum2(num1 num2) getNum2(num1 num2%num1)
//求两个数最大公约数
public static int getGcd(int a, int b) {
count++;
if(a>b){
int temp=a;
a=b;
b=temp;
}
//a<b
if(b%a==0){
return a;
}else{
return getGcd(a,b%a);
}