黑马程序员技术交流社区

标题: 递归啥含义 [打印本页]

作者: 人心如水    时间: 2014-6-24 19:32
标题: 递归啥含义
。。。。
作者: dispensable    时间: 2014-6-24 19:46
- -你不如直接去百度?看看例子清晰一点…… 总结一下就是方法自身调用自身,最直观的应用是拿来做阶乘运算:比如
public  static int  f(int n){
if (n==1)
return 1;
else
return  n*f(n-1)
代码没考虑其他细节,只表述一下递归是个什么东西
}
作者: endian11    时间: 2014-6-24 20:44
递归就是自己调用自己呗,但是递归一定要结束条件,不能无限制的自己调用自己
作者: 小坏坏    时间: 2014-6-24 21:01
函数调用自己本身,如斐波那契序列
public static long F(int n){
   if(n == 0 || n == 1)
       return 1;
   else
       retun F(n-1)+F(n-2);
}
作者: 从未有过的晴天    时间: 2014-6-24 21:10
就是自己跟自己玩上了
作者: 哇塞哇    时间: 2014-6-24 21:22
递归是一种重要的编程技术。该方法用于让一个函数从其内部调用其自身。一个示例就是计算阶乘。0 的阶乘被特别地定义为 1。 更大数的阶乘是通过计算 1 * 2 * ...来求得的,每次增加 1,直至达到要计算其阶乘的那个数。
计算阶乘的函数。如果传递了
// 无效的数值(例如小于零),
// 将返回 -1,表明发生了错误。若数值有效,
// 把数值转换为最相近的整数,并
// 返回阶乘。
function factorial(aNumber)  {
aNumber = Math.floor(aNumber);  // 如果这个数不是一个整数,则向下舍入。
if (aNumber < 0)  {  // 如果这个数小于 0,拒绝接收。
    return -1;
    }
      if (aNumber == 0)  {  // 如果为 0,则其阶乘为 1。
      return 1;
      }
        else return (aNumber * factorial(aNumber - 1));  // 否则,递归直至完成。
}
把这个程序好好理解。




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