名词解释:递归调用 5

名词解释:递归调用... 名词解释:递归调用 展开
 我来答
wang6895
2009-05-09 · TA获得超过502个赞
知道小有建树答主
回答量:110
采纳率:100%
帮助的人:130万
展开全部
递归调用是一种特殊的嵌套调用,是某个函数调用自己,而不是另外一个函数。
递归调用一种解决方案,一种是逻辑思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
例如:考虑如下计算阶乘的代码:
long fact(long n)
{
if(n==0||n==1) return 1L;
else return n*fact(n-1);
}
这个函数叫做fact,它自己调用自己,这个就是一个典型的递归调用,调用过程类似一个栈。
JAVA写的递归调用
public class TestDg {
public static void main(String[] args) {
System.out.println(method(5));
}
public static int method(int n) {
if (n == 1)
return 1;
else
return n * method(n - 1);
}
}

参考资料: http://baike.baidu.com/view/1265506.html?wtp=tt

阳光上的桥
2009-05-09 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65808
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
递归就是调用自身,有直接递归和间接递归两种,直接递归是自己直接调用自己,间接递归是自己调用了需要调用自己的函数。

递归在子程序里面出现,对于C语言就是函数,BASIC和PASCAL等于里面函数和过程都可以做递归。

递归不是程序错误,而是程序技巧。

以上是我个人理解,这里有专业解释:http://baike.baidu.com/view/96473.htm
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金纯玄令怡
2019-11-10 · TA获得超过4010个赞
知道大有可为答主
回答量:3186
采纳率:29%
帮助的人:212万
展开全部
八皇后问题吧
procedure
try(i:integer);
var
j:integer;
begin
for
j:=1
to
8
do
if
(b[j]=0)
and(c[i+j]=0)
and
(d[i-j]=0)
then
//i指的是第几行,j是第几列,b【】存储状态,c【】副对角线,d【】主对角线
begin
a[i]:=j;
b[j]:=1;
c[i+j]:=1;
d[i-j]:=1;
//我有个问题,没判断同行同列问题啊
if
i<8
then
try(i+1)
//如果还没放够8颗,放下一个。
else
print;
b[j]:=0;
c[i+j]:=0;
d[i-j]:=0;
清除本次状态,搜下一个同行的位置。
end;
end;
//我2年没pascal了,过程已经不用begin和end括起来了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10104809
2009-05-21
知道答主
回答量:52
采纳率:0%
帮助的人:17.9万
展开全部
就是函数自己调运自己拉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
XYCDebug
2009-05-09 · 超过87用户采纳过TA的回答
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:239万
展开全部
猪吃猪肉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式