跟小刀学习 递归简单实现

来源:互联网 发布:vmware 12.5 mac os x 编辑:程序博客网 时间:2024/04/30 13:43
  • 五一,第二天。作为屌丝的我。又是一天新的撸码。因为项目中基本不允许递归算法。以至于我现在都了递归怎么写了。今天闲的没事干来回忆下下。
  • 其实简单的递归算法比较容易实现
  • 我们废话不说,直接上代码
package com.chapter4_29;/** * 三角数的计算 * @author zqp *10+9+8+。。。。+1 */public class Triangle {    public static void main(String[] args) {//      System.out.println("三角计算的值:"+getTotal(3));        System.out.println("阶乘计算的值:"+getFactorial(3));    }    /**     * //最后调用函数时直接返回结果1 和前面的N 相加。     *      *学好数学很重要。然而我的数学不怎么好。等以后好好从高中开始复习数学。。     *其实这种三角函数的公式 就是 (n² +n)/2     * @param i     * @return     */     static int getTotal(int i){        if(i == 1){            return 1;        }else{            return (i+getTotal(i-1));        }    }    /**     * 获取阶乘的总数     * 6*5*4*。。。。*1     */    static int getFactorial(int n){        if(n == 0){            return 1;        }else{            System.out.println("运行:"+n+"*"+(n-1));            return n*getFactorial( n-1);        }    }}运行:3*2运行:2*1运行:1*0阶乘计算的值:6

我自己画了一个图。也贴上来

这里写图片描述

这只是递归的简单实现

递归的主要特征:1.就是自己调用自己,2.有一个简单的终止方法。
一般我们在项目中是不允许用递归算法的因为。递归算法不断的往栈里压方法和变量。有时会因为系统的内存不足造成系统崩溃。内存溢出等问题。
其实递归算法有很多很多种。然而发现自己不是特别想撸代码。。啧啧算了。先打一把英雄联盟在说。。无畏的噢。。

0 0
原创粉丝点击