首页 > 编程 > C++ > 正文

C++ 函数的递归调用

2019-11-11 06:02:35
字体:
来源:转载
供稿:网友

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。包含递归调用的函数称为递归函数。 比如:

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函数,退出了递归。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选