方法的递归调用

来源:互联网 发布:高频关键词共现矩阵 编辑:程序博客网 时间:2024/05/09 12:48

方法的递归调用

       概念:属于方法的自身调用

       例子

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);

}

0 0