黑马程序员技术交流社区
标题:
请教一下各位大神 什么叫递归
[打印本页]
作者:
hubei3805979
时间:
2016-6-23 22:19
标题:
请教一下各位大神 什么叫递归
方便留个案例参考一下 谢谢
作者:
1316582449
时间:
2016-6-23 22:36
递归,就是在运行的过程中调用自己。
构成递归需具备的条件:
函数嵌套调用过程示例
1. 子问题须与原始问题为同样的事,且更为简单;
2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。
例如,下列为某人祖先的递归定义:
某人的双亲是他的祖先(基本情况)。某人祖先的双亲同样是某人的祖先(递归步骤)。斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21..... I
作者:
Ake丶
时间:
2016-6-23 22:47
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;
}
作者:
crazymen
时间:
2016-6-23 22:48
这个我也不懂,很伤脑,有些大神很会这个
作者:
彼岸轮回
时间:
2016-6-23 22:52
就是在运行的过程中不断调用自身,但要有出口,否则会报错深度递归
作者:
940752944
时间:
2016-6-23 23:11
程序自己调用自己
作者:
小雨皮
时间:
2016-6-23 23:32
函数自己调用自己,递归方法写着简单,却没有循环效率高,也浪费内存,
例如
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;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2