递归函数的定义
我们把“内部操作直接或者间接调用了自己的函数”成为递归函数。
递归函数有两大要素:
- 递归关系式:对问题进行递归形式的描述
- 递归终止条件:当满足该条件时以一种特殊情况处理,而不是用递归关系式来处理。
如阶乘函数**f(n)=n!**可以定义为递归函数:
f(1)=1 | n=1时 |
---|---|
f(n)=n*f(n-1) | n>1 |
其中,f(1)为终止条件,f(n)=n*f(n-1)为递归关系式。
对应程序如下:
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int f(int n)
{
if(n==1) return 1;
else return n*f(n-1);
}
int main(int argc, char** argv) {
int n;
while(cin>>n){
cout<<f(n)<<endl;
}
return 0;
}