C++ 函数的递归调用
2017-02-06 00:11
423 查看
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。包含递归调用的函数称为递归函数。
比如:
以上是一个直接调用的例子,递归调用还包括间接调用,比如:
从上面的程序可以看到,这样执行后会出现无终止的自身调用,所以程序应该加入对用的判断机制,让递归在有限次数后停止。
举个栗子:
用递归的方式求n!
递归退出的条件:
如果n等于0或者等于1,那么执行f等于1,不在调用fac函数,退出了递归。
比如:
int test(int x) { int y; y = test(x); return(2*y); }
以上是一个直接调用的例子,递归调用还包括间接调用,比如:
int first(int x) { int b; b = second(x); return(2*b); } int second(int y) { int a; a = first(y); return(2*a); }
从上面的程序可以看到,这样执行后会出现无终止的自身调用,所以程序应该加入对用的判断机制,让递归在有限次数后停止。
举个栗子:
用递归的方式求n!
#include <iostream> using namespace std; long fac(int); int main() { int n; long y; cout <<"请输入"; cin >>n; y = fac(n); cout<<n<<"!="<<y<<endl; getchar(); getchar(); return 0 ; } long fac(int n) { long f; if (n <0) { cout<<"错误!!!"<<endl; } else if(n== 0||n == 1) f =1; else f=fac(n-1)*n; return f; }
递归退出的条件:
else if(n== 0||n == 1) f =1;
如果n等于0或者等于1,那么执行f等于1,不在调用fac函数,退出了递归。
相关文章推荐
- C++:函数的递归调用相关
- C++函数之递归调用
- iOS培训篇——C++函数递归调用介绍
- 你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用
- c++ 函数的递归调用
- C++ && C# 函数的递归调用
- (转载)你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用
- 3.C++ 函数返回值、函数调用(普通、嵌套、递归调用)
- C++:函数的递归调用--实现斐波那契数列
- c++ 函数的递归调用
- 【C++】函数的嵌套调用和递归调用
- [C++程序设计]函数的递归调用
- C++:函数的递归调用相关
- C++程序设计实验报告(二十七)---第二周任务一(自定义函数用递归思想,即不断调用,反向输出二进制)
- 转:关于在C++内用指针调用类的成员函数
- java中如何使用JNI调用C++写的函数
- C++中打印函数调用情况
- C++指针直接调用类成员函数探讨(zz)
- C++箴言:避免析构函数调用虚函数
- C#与DLL和COM的混合编程(1)-C#调用C++写的非托管的DLL中导出的函数