c++中什么是递归函数
答案:4 悬赏:40 手机版
解决时间 2021-02-26 13:49
- 提问者网友:放下
- 2021-02-25 16:11
c++中什么是递归函数
最佳答案
- 五星知识达人网友:山君与见山
- 2021-02-25 16:45
在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。 在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。
递归函数 是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。
一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
/////////////////////////如一个非法的递归(嵌套)调用:
void ff(){
ff();
}
int main()
{
ff();
system("pause");
return 0;
}
//////////////////////////////斐波那契数列的递归解法
/////////////////////////写法虽然简单,但是效率不高。
#include
//Fibonacci sequence
int GetFibnRes(int n){
if (n>1) {
return GetFibnRes(n-1) + GetFibnRes(n-2);
}
if (n<0) {
cout<<"uneffective parameter!"< return -1;
}
return n;
}
int main(){
int n;
int res;
while (1) {
cout<<"Please input Fibonacci Sequence's number"< cin>>n;
res=GetFibnRes(n);
cout< system("pause");
}
return 0;
}
递归函数 是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。
一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
/////////////////////////如一个非法的递归(嵌套)调用:
void ff(){
ff();
}
int main()
{
ff();
system("pause");
return 0;
}
//////////////////////////////斐波那契数列的递归解法
/////////////////////////写法虽然简单,但是效率不高。
#include
//Fibonacci sequence
int GetFibnRes(int n){
if (n>1) {
return GetFibnRes(n-1) + GetFibnRes(n-2);
}
if (n<0) {
cout<<"uneffective parameter!"<
}
return n;
}
int main(){
int n;
int res;
while (1) {
cout<<"Please input Fibonacci Sequence's number"<
res=GetFibnRes(n);
cout<
}
return 0;
}
全部回答
- 1楼网友:迟山
- 2021-02-25 18:06
在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。 在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。
递归函数 是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。
一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
/////////////////////////如一个非法的递归(嵌套)调用:
- 2楼网友:琴狂剑也妄
- 2021-02-25 17:53
直接或间接调用自身的函数。
- 3楼网友:野味小生
- 2021-02-25 17:42
递归就是一个函数内出现调用本身的现象,举个最简单的例子,求阶乘:
当n=0或1时,n!=1;当n>1时,n!=n*(n-1)!通过这样的思想,程序写为:
int fun(int n)
{
if(n<2)
return 1;
else
return n*fun(n-1);
}
看到了fun函数内调用了它本身fun,可以想象一步步下去就可以得到计算结果。
当n=0或1时,n!=1;当n>1时,n!=n*(n-1)!通过这样的思想,程序写为:
int fun(int n)
{
if(n<2)
return 1;
else
return n*fun(n-1);
}
看到了fun函数内调用了它本身fun,可以想象一步步下去就可以得到计算结果。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯