递归——递归函数的详细过程
函数递归
- 什么是递归?
- 递归的两个必要条件
- 例子
- 斐波那契数的递归求解
- n的阶乘递归求解
什么是递归?
程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛运用。一个过程或函数再其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原始问题相似的规模较小问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的主要思考方式在于:大事化小
递归的两个必要条件
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
- 每次递归调用后越来越接近这个限制条件。
例子
编写一个函数,接受一个整数,按顺序打印她的每一位:
例如:
输入
1234
输出:
1 2 3 4
#define _CRT_SECURE_NO_WARNINGS 1
//编写函数,按顺序输出每一位
#include <stdio.h>
void Fun(int num)
{
if (num > 9)//如果是两位数
{
Fun(num / 10);//递归调用
}
printf("%d ", (num % 10));//取余得到个位
}
int main()
{
int num = 0;
scanf("%d", &num);
Fun(num);
return 0;
}
如上图:
递归的调用,就是,一次一次的调用,直到越来越接近这个限制条件,然后返回。
斐波那契数的递归求解
在以前的博客中写过,感兴趣的话,可以点进去看
递归,斐波那契数的求解
n的阶乘递归求解
n的阶乘递归求解,以前也写过,可以在前几篇找到
n的阶乘递归求解
还没有评论,来说两句吧...