黑马程序员技术交流社区

标题: 求大神指教什么是递归? [打印本页]

作者: ringfingers    时间: 2015-9-26 23:10
标题: 求大神指教什么是递归?
可否举一个栗子
作者: 朦胧色彩    时间: 2015-9-27 13:00
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 func(1, 0);//求1到10的和
  6.         }

  7.         public static void func(int num, int sum)
  8.         {
  9.                 // 递归出口
  10.                 if(num == 10)
  11.                 {
  12.                         //45 + 10
  13.                         sum += 10;
  14.                         System.out.println(sum);
  15.                         return;
  16.                 }

  17.                 /*
  18.                  * sum的变化 , a + b 的a 是 b之前所有的数相加的和
  19.                  * 0 + 1
  20.                  * 1 + 2
  21.                  * 3 + 3
  22.                  * 6 + 4
  23.                  * 10+ 5
  24.                  * 15+ 6
  25.                  * 21+ 7
  26.                  * 28+ 8
  27.                  * 36+ 9
  28.                  */
  29.                 sum += num;
  30.                 func(num + 1, sum);//调用自己
  31.                
  32.         }

  33. }
复制代码

递归,自己调用自己,在func方法里也有调用func方法。
作者: 莫萧涵    时间: 2015-9-27 15:25
~~~~~~~~~~~~

jhz92g.jpg (37.45 KB, 下载次数: 8)

jhz92g.jpg

作者: 在唱歌    时间: 2015-9-27 15:32
递归就是方法调用自己。。。比如在方法get(int num)中,可以设定一个条件,满足的时候就调用自己get()
作者: c4anger    时间: 2015-9-27 15:39
举个栗子:
    从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的是:从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事....
作者: 洋葱头头    时间: 2015-9-27 15:41
play(){
  play();
}




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