java--方法递归调用

package cn.bufanli.iodemo;

/**
 * 方法的递归调用
 *   方法自己调用自己
 *  适用于: 方法中运算的主体不变,但运行的方法参数会发生变化
 * 注意:
 *   递归一定要有出口,必须可以让程序可以停下
 *   递归次数不能过多
 *   构造方法,禁止递归
 */
public class DiGuiDemo {

     public static void main(String[] args) {
          System.out.println(getSum(100));

          System.out.println(getJieCheng(100));
          System.out.println(getFBNQ(12));
     }
     /**
      * 计算1+...到 n 的和
      */
     public static int getSum(int n){
          if(n==1){
               return  1;
          }
         return  n+getSum(n-1);
     }
     /**
      * 计算阶乘
      * 5*4*3*2*1
      */
     public static int getJieCheng(int n){
          if(n==1){
               return  1;
          }
         return  n*getJieCheng(n-1);
     }
     /**
      * 计算斐波那契数列(不死神兔)
      * 一对兔子,第一个月不生第二个月不生,从第三个月开始生下一对兔子
      * 生下的那一对兔子,第一个月不生第二个月不生,从第三个月开始生下一对兔子
      * 12个月 一共有多少对兔子
      * 1 1 2 3 5 8 13 21 34 55 89 144
      * 从第三个月开始  month = (month-1)+(month-2)
      */
     public static int getFBNQ(int month){
          if(month==1){
               return 1;
          }
          if(month==2){
               return 1;
          }
          return getFBNQ(month-1)+getFBNQ(month-2);

     }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值