首页 > 编程语言 > 详细

简单的数据整理, 递归算法

时间:2015-12-20 22:12:19      阅读:229      评论:0      收藏:0      [点我收藏+]

  今天接触了一下递归, 一开始听的时候不知道啥意思, 只是按照答案代码抄下来, 就能实现自己的目的, 在网上看了一下感觉也不是很难理解

  但是说实话要是想用的很熟练, 就不是一件简单的事情了

  首先来看一段代码, 求一个数字的阶乘的

public class qqq {
//计算一个数字的阶乘
    private static int fact(int a) {
        //1的阶乘本来就是1, 这里直接返回
        if(a==1) {
            return a;
        }
        else {
            return (a * fact(a-1));
        }
    }
    public static void main(String[] args) {
        System.out.println(fact(6));
    }
}

递归在很大程度上类似于循环, 但又不是循环, 递归是有去有回, 循环是有去无回, 很多情况下递归可以是代码更简单, 也更让人容易理解(这点倒是真没发现...),

再看一下这张图片

技术分享

这就是用递归算法算一个数字的阶乘的过程图

原理就是

6的阶乘==6乘以5的阶乘

5的阶乘==5乘以4的阶乘

4的阶乘==4乘以3的阶乘

3的阶乘==3乘以2的阶乘

2的阶乘==2乘以1的阶乘

1的阶乘==1

依次往上就有了这么个东西:

6的阶乘==6乘以5乘以4乘以3乘以2乘以1............

于是6的阶乘就算出来了

简单的数据整理, 递归算法

原文:http://www.cnblogs.com/wgbs25673578/p/5061915.html

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