学习C++和C语言心得 14
函数递归
1.函数递归的定义
函数递归的定义程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
2.函数递归的优缺点优点
函数递归只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小(这种思考方式十分重要)。
缺点:①如果函数递归使用不恰当,会导致栈溢出,因为每一次函数调用都会在栈区上申请内存空间。、
②每一次函数递归(函数调用)都会在函数上开辟一块空间。这样会大大降低我们代码的执行效率。
3.函数递归的两个必要条件
(1)存在限制条件,当满足这个限制条件的时候,递归便不再继续。
(2)每次递归调用之后越来越接近这个限制条件。
典型例题:递归——阶乘计算
题目描述: 输入一个整数n,使用递归方法计算n的阶乘。
输入描述:
一个整数n(1 ≤ n ≤ 15 )
输出描述:
n的阶乘的结算结果。
示例1:输入 4 输出 24
程序:
#include<iostream>
using namespace std;
long long jiecheng(int n)
{
if(n==1)
return 1;
}
else
return jiecheng(n-1)*n;
}
int main()
{
int n;
cin>>n;
cout<<jiecheng(n)<<endl;
}