黑马程序员技术交流社区

标题: 关于递归的问题 [打印本页]

作者: 王春蕾    时间: 2014-4-23 22:21
标题: 关于递归的问题
我写了一个累加一个从0到指定值的求和的递归方法,代码如下:
  1.         public static int getSum(int maxValue) {
  2.                 if (maxValue == 1)
  3.                         return 1;
  4.                 else {
  5.                         return maxValue + getSum(maxValue-1);
  6.                 }
  7.         }
复制代码

运行可以得到正确的答案,但是我能不能把else里面的getSum(maxValue-1)改成getSum(maxValue--)呢?
改过运行时内存溢出,为什么不行啊?
作者: 悠然丶    时间: 2014-4-23 22:37
return maxValue + getSum(maxValue-1);这句话就是递归的体现
maxValue -1,就是说方法每次在调用自己的时候-1,也相当与一个循环
public static int getSum(int maxValue) {
         if (maxValue == 1)
                 return 1;
         else {
                 return maxValue + getSum(--maxValue); //你把后--改成前--就ok了
         }
}





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