黑马程序员技术交流社区
标题:
嵌套和递归
[打印本页]
作者:
徐传任
时间:
2012-9-28 21:10
标题:
嵌套和递归
嵌套和递归有什么联系和区别??求解释
作者:
廖创发
时间:
2012-9-28 21:12
函数嵌套是语言特性,递归调用是逻辑思想。
函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数
funca()
{
funcb();
}
funcb()
{
funcc();
}
funcc()
{
cout << "Hello" <<endl;
}
这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。
而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
递归最明显的特点就是,自己调用自己(不就嵌套调用了嘛)。
funca()
{
if(statement1)
funca();
else
exit(0);
}
作者:
彭书雄
时间:
2012-9-28 21:20
通俗一点就是
递归:就是调用方法本身,知道达到你要求的界定值
嵌套:就是在本方法中调用其他方法
楼上有示例
作者:
王伟(wangwei)
时间:
2012-9-29 01:03
嵌套调用就是某个函数调用另外一个函数,递归调用是一个函数直接或间接的调用自己。
举几个例子:A调用B(嵌套)B调用C(嵌套)A调用A(递归)A调用B B调用A (递归)A调用B B调用C C调用A (递归)
作者:
孙伟明
时间:
2012-9-29 08:52
嵌套是指一个过程调用另一个过程的使用,
递归过程是这个过程中调用本过程的使用。
递归是嵌套的一种特殊形式,递归过程必须有“归点”,也就是终止调用本身的一个分支
作者:
秦敖
时间:
2012-10-6 12:42
/*
* Created by SharpDevelop.
* User: Administrator
* Date: 2012/10/6
* Time: 12:18
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using
System;
namespace
递归与嵌套
{
class
Program
{
//我来给一个具体的用于求斐波拉携数列的具体小例子!纯属个人理解!
public
static
void
Main
(
string
[] args)
{
OutPutFab
();
Console.
ReadKey
(
true
);
}
///
<summary>
///
实现斐波拉携数列的输出功能
///
</summary>
static
void
OutPutFab
()
{
Console.
Write
(
"请输入要显示的斐波拉携数列的项数(1-30):"
);
int
Row;
while
(!
int
.
TryParse
(Console.
ReadLine
(),
out
Row)||Row<
1
||Row>
30
)
{
Console.
Write
(
"输入无效,请重新输入(1-30):"
);
}
for
(
int
i=
1
;i<Row;i++)
{
Console.
Write
(
"{0},"
,
Fab
(i));
//在OutPutFab中调用Fab就叫把Fab嵌套到OutPutFab中。
}
Console.
Write
(
Fab
(Row));
}
///
<summary>
///
用于求斐波拉携数列中某项的值
///
</summary>
///
<param name="n">项数</param>
///
<returns></returns>
static
int
Fab
(
int
n)
{
if
(n==
1
||n==
2
)
{
return
1
;
}
else
if
(n>=
3
)
{
return
Fab
(n-
1
)+
Fab
(n-
2
);
//函数调用函数本身,就是递归了。和高中数学学的递归数列差不多。
}
else
{
return
0
;
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2