首页 > 其他 > 详细

递归调用

时间:2020-03-06 10:42:21      阅读:31      评论:0      收藏:0      [点我收藏+]
  • 计算斐波那契数
//每个数等于前两个数之和:1  1  2  3  5  8  13  21  34  55 ...
public class Fibonacci {
    public static void main(String[] args) {
        int n = 10;
        System.out.println(new Fibonacci().Fib(n));
    }
    public int Fib(int n) {
        if(n == 1)
            return 1;
        else if(n == 2)
            return 1;
        else 
            return Fib(n-1)+Fib(n-2);
    }
}
  • 求应公式的值
//已知一个数列:f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),
//其中n是大于0的整数,求f(10)的值
public class Recursion_1 {
    public static void main(String[] atgs) {
        int n = 10;
        System.out.println(new Recursion_1().sum(n));
    }
    public int sum(int n) {
        if(n == 20) {
            return 20;
        }
        else if(n == 21) {
            return 21;
        }
        else
            return sum(n+2)-2*sum(n+2);
    }
}
  • 递归求乘阶(n)
public class Recursion_JieCheng {
    public static void main(String[] atgs) {
        System.out.println(new Recursion_JieCheng().fac(10));
    }
    public int fac(int n) {
        if(n == 0 || n == 1) 
            return 1;
        else
            return fac(n-1)*n;
        //每次递归的进入都是将n-1作为实参传递给形参,所以每次递归调用的方法所接收到的
        //参数都比其外层接收到的参数小1;
        //每次递归出去的都是本层递归方法所返回的结果,结果返回至给上一层调用它的位置
    }
}

递归调用

原文:https://www.cnblogs.com/csyh/p/12424662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!