A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

方便留个案例参考一下  谢谢

6 个回复

倒序浏览
递归,就是在运行的过程中调用自己。

构成递归需具备的条件:

函数嵌套调用过程示例

1. 子问题须与原始问题为同样的事,且更为简单;

2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。

在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。

例如,下列为某人祖先的递归定义:

某人的双亲是他的祖先(基本情况)。某人祖先的双亲同样是某人的祖先(递归步骤)。斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21..... I
回复 使用道具 举报
public static void main(String[] args[]) {
      int b=function(9);//求阶乘。
      System.out.print(b);
}
//求阶乘方法,只针对正数输入,没对负数做判断。
public static int function(int n) {
     int a;
     if(n > 0) {
       a=function(n-1)*n;
     }
     else {
      a=1;
      }
     return a;
}
回复 使用道具 举报
这个我也不懂,很伤脑,有些大神很会这个
回复 使用道具 举报
就是在运行的过程中不断调用自身,但要有出口,否则会报错深度递归
回复 使用道具 举报
程序自己调用自己
回复 使用道具 举报
函数自己调用自己,递归方法写着简单,却没有循环效率高,也浪费内存,
例如
n! = n * (n-1) * (n-2) * ...* 1(n>0)

//阶乘
int recursive(int i)
{
        int sum = 0;
        if (0 == i)
                return (1);
        else
                sum = i * recursive(i-1);
        return sum;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马