您的位置:首页 > 其它

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

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

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

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

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的阶乘就算出来了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: