黑马程序员技术交流社区

标题: java中的递归 [打印本页]

作者: shaoboguanzi    时间: 2015-1-23 17:42
标题: java中的递归

     

1、递归函数: 即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身。

2、递归方式:递归调用有直接递归和间接递归两种方式。  

                A:直接递归:在函数中出现调用函数本身。

  B:间接递归:在A函数中调用B函数,然后在B函数中调用A函数实现递归。

3  、递归函数优点:递归的目的是简化程序设计,使程序易读。

4、递归函数的缺点:增加了系统开销,也就是说,每递归一次,栈内存就多占用一截

       应用:用递归实现阶乘是最好不过的了,这样可以有效地缩短代码

Java中的循环和递归的比较

递归是指函数在运行中不断的调用自己的一中现象。递归并不是程序的流程结构,而是一种程序设计的一种思路和实现方式。而且递归不是一种算法,只是实现一种算法的思想。递归可以简化代码的思维强度,缩短代码,因此在很多语言中都有应用。

用递归实现阶乘是最好不过的了,这样可以有效地缩短代码。下面的代码就是用递归实现。

import java.util.*;

public class Factorial {

    public static void main(String[] args){

        System.out.println(”Please enter a number…”);         Scanner in=new Scanner(System.in);         int input=in.nextInt();         factorial(input);

        System.out.print(factorials);     }

    private static void factorial(int n){            if(n>0){

            factorials*=n;             n- -;             factorial(n);   

     }   

  }



作者: 淡看流光行远    时间: 2015-1-23 21:40
为什么基础班的视频不讲递归呢?是不是不重要?
作者: java小兵    时间: 2015-1-23 21:55
哪里有递归详解吗?
作者: 实践出真知    时间: 2015-1-23 22:05
赞楼主一个,好详细
作者: 梁小刀11    时间: 2015-1-23 22:27
淡看流光行远 发表于 2015-1-23 21:40
为什么基础班的视频不讲递归呢?是不是不重要?

我返现自学视频上没有的讲到的基础挺多的.
作者: 梁小刀11    时间: 2015-1-23 22:29
淡看流光行远 发表于 2015-1-23 21:40
为什么基础班的视频不讲递归呢?是不是不重要?

我返现自学视频上没有的讲到的基础挺多的.
作者: 梁小刀11    时间: 2015-1-23 22:42
我返现自学视频上没有的讲到的基础挺多的.
作者: 边晓炎    时间: 2015-1-24 20:35
我记得视频上有讲递归的!是讲10进制转换2进制的!
作者: xiaoyi    时间: 2015-1-24 21:22
淡看流光行远 发表于 2015-1-23 21:40
为什么基础班的视频不讲递归呢?是不是不重要?

在io里面讲了的,遍历文件夹,文件夹下还有文件夹,这不就递归了
作者: 小小上帝    时间: 2015-1-25 20:34
基础班确实没听到啊
作者: AthenaCykes    时间: 2015-2-12 16:10
赞一个赞一个赞一个赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2