函数递归(C语言)

目录

递归是什么?

递归的思想:

递归的限制条件:

经典编程题:斐波那契数列


递归是什么?

C语言中,递归就是函数自己调用自己

每一次函数调用都会占有一块内存空间:函数栈帧空间(运行时堆栈)

递归的思想:

把一个大型复杂问题层层转化为一个与原问题相似,但规模较小的子问题来求解;直到子问题不能再拆分,递归问题就结束了,所以递归的思考方式就是把大事化小的过程

递归中的递就是递推的意思,归就是回归的意思;

递归的限制条件:

递归在书写时,有2个必要条件:

  • 递归存在限制条件,当满足这个限制条件的时候,递归便不再继续
  • 每次递归调用之后越来越接近这个限制条件

经典编程题:斐波那契数列

迭代法:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fib(int n)
{
	int a = 1, b = 1, m = 0;
	if (n == 1 || n == 2)
		return 1;
	while (n >= 2)
	{
		m = a + m;
		a = b;
		b = m;
		n--;
	}
	return m;
}
int main()
{
	int n;
	scanf("%d", &n);
	printf("%d", fib(n));
}

递归法:

int fib(int n)
{
	if (n == 1 || n == 2)
	{
		return 1;
	}
	else
	{
		return fib(n - 1) + fib(n - 2);
	}
}
int main()
{
	int n ;
	int ret = 0;
	scanf("%d", &n);
	ret = fib(n);
	printf("ret=%d", ret);
	return 0;
}

相关推荐

  1. 函数(C语言)

    2024-01-27 08:40:03       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 08:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 08:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 08:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 08:40:03       20 阅读

热门阅读

  1. Android Bitmap 图片裁剪

    2024-01-27 08:40:03       32 阅读
  2. Node+Express写分页接口

    2024-01-27 08:40:03       31 阅读
  3. 前端组件封装

    2024-01-27 08:40:03       29 阅读
  4. wordpress连接azure MySQL

    2024-01-27 08:40:03       40 阅读
  5. 范围查询优化:索引跳跃扫描

    2024-01-27 08:40:03       29 阅读
  6. Redis的SDS你了解吗?

    2024-01-27 08:40:03       31 阅读