2021-09-06

递归调用

三要素:

1.明确你这个函数想要干什么

2.寻找递归结束条件

3.找出函数的等价关系式

 

1.打印阶乘

public int Factorial(int n){
      if(n == 1){
        return 1;  //n为1//时直接返回1
}else{
   return  Factorial(n - 1) * n; //递归实现阶乘
}      
}    

 

2.猴子吃perch

public int eat(int day){
        if (day == 10){
            return 1;
        }else if (day >= 1 && day <= 9){
            return (eat(day + 1) + 1)* 2;  //前一天eat的 = (前一天eat的 + 1)* 2   以此类推
        }
        return -1;
    }

/* day10 : 1
    day9: (day10 + 1)*2
    day8: (day9 + 1)*2
   ...   
*/

 

3.斐波那契数列

public int Fibonaqi(int num){
        if (num>=1){
            if (num ==1 || num == 2){
                return 1;
            }else {
                return Fibonaqi(num - 1 ) + Fibonaqi(num - 2);
            }
        }else {
            return -1;
        }
    }

/*
1 1 2 3 5 8 13
num ==1 -->1
num ==2 -->2
num ==3 --> 1+2 =3
num ==4 --> 2+3 = 5
...
num == (num - 1) + (num - 2)
*/

 

posted @ 2021-09-06 18:02  搬砖丶  阅读(50)  评论(0)    收藏  举报