• JavaSE复习日记 : 递归函数


    /*
     *                          递归函数
     *      什么是递归?
     *          在一个方法的内部,对自身进行调用,又叫做递归调用
     *
     *      递归和循环的编写都包括三部分:
     *          1. 初始值;
     *          2. 终止条件;
     *          3. 前进步长;
     *
     *      递归解决比较常见的问题:
     *          累加加的和;
     *          阶乘;
     *          斐波那契数列等;
     *          
     *      可能前面两个都会有过接触,没关系,我们把三个都写一遍
     *      
     */
    
    //                              累加加和
    
    /*
     *          计算1到100的和;
     */
    
    /*
    public class JavaSE{
        public static void main(String[] args){
            int s = sum(100);
            System.out.println( s );
        }
        public static int sum(int a){//输出整形值100,进入判断语句,如果是1,就返回1,如果不是1,就返回:a + (a-1) + [(a-1)-1] + ...直到a - (a-1),也就是等于1的时候,返回1结束,结果相当于算的是100到1的和;
            if (a==1) {
                return 1;
            }else{
                return a + sum(a-1);//这里是调用了方法自身,让自身减一再进行判断,直到a==1为止结束
            }
        }
    }
    */
    
    /*
     *                          阶乘
     *          计算10的阶乘(这里如果想换个别的数的话最好别换太大的数,否则会出现不可预估的结果,可能会超出int的内存空间,建议用12以下的数)
     */
    
    /*
    public class JavaSE{
        public static void main(String[] args){
            System.out.println( factorial(10) );
        }
        public static int factorial(int n){
            if (n==1) {
                return 1;
            }else{
                System.out.println( n + "x" + (n-1) + "  " );
                return n*factorial(n-1);
            }
        }
    }
    */
    
    /*
     *                              斐波那契数列
     *      斐波那契数列第一位和第二位的数值都是1,之后的每一位都是前两位的和;
     *      计算第5位斐波那契数列的数值;
     */
    
    public class JavaSE{
        public static void main(String[] args){
        System.out.println( fibIteration(5) );
        }
        public static long fibIteration(int index) {
            if (index == 1 || index == 2) {
                return 1;
            }
    
            long f1 = 1l;
            long f2 = 1l;
            long f = 0;
    
            for (int i = 0; i < index-2; i++) {
                f = f1 + f2;
                f1 = f2;
                f2 = f;
                System.out.print(f2 + "+" + f1 + ",");
            }
            return f;
        }
    }

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>杰我教育WWW.JAOVO.COM<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  • 相关阅读:
    分分钟提升命令行模式下密码输入逼格
    MySQL server has gone away 的两个最常见的可能性
    第一次遇到刷新缓冲区延时
    Mac上安装mysqlclient的报错
    python3 --- locale命名空间让程序更加安全了
    doctest --- 一个改善python代码质量的工具
    MySQL优化器 --- index_merge
    机智的MySQL优化器 --- is null
    Centos-7.x 下子网掩码的配置
    JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查
  • 原文地址:https://www.cnblogs.com/yizhimichong/p/4753270.html
Copyright © 2020-2023  润新知