C语言学习:14、递归函数

news/2024/7/7 19:48:01

所谓递归,就是函数自己调用自己

        递归就是将大问题分解成小问题,分而治之;

        递归分解的是有限的问题,无限的问题就不能递归了,会导致程序崩溃。

//数列求和
//Sn = a1 + a1 + ... + an
//Sn = Sn-1 + an, S1 = a1

程序示例1:求累加和

#include <stdio.h>

int sum(int n)
{
	int ret = 0;

	if (n == 1)
	{
		ret = 1;
	}
	else
		ret = sum(n - 1) + n;

	return ret;
}



int main()
{
	printf("sum = %d\n", sum(100));
	return 0;
}

斐波拉契数列: 1 、1 、2 、3 、5 、8、 13 、21。。。。。。

当n>=3时,fac(n) = fac(n-1) + fac(n-2);
当n==2时,fac(n) = 1;
当n==1时,fac(n) = 1;

程序示例2:求斐波那契数列

#include <stdio.h>


int fac(int n)
{
	int ret = 0;
	if (n == 1)
	{
		ret = 1;
	}
	else if (n == 2)
	{
		ret = 1;
	}
	else if (n >= 3)
	{
		ret = fac(n - 1) + fac(n - 2);
	}
	else
		ret = -1;

	return ret;
}



int main()
{
	printf("fac(%d) = %d\n", 9,fac(9));
	return 0;
}


http://lihuaxi.xjx100.cn/news/1557864.html

相关文章

力扣刷题:寻找两个正序数组的中位数、最长回文子串

今日刷题又开始了 一、寻找两个正序数组的中位数 题目链接&#xff1a;https://leetcode.cn/problems/median-of-two-sorted-arrays/ 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法…

Postman应用——Headers请求头设置

文章目录 Header设置Header删除或禁用Header批量编辑Header预设添加 一般在接口需要校验签名时&#xff0c;Headers请求头用来携带签名和生成签名需要的参数&#xff0c;在Postman也可以设置请求头在接口请求时携带参数。 Header设置 说明&#xff1a; Key&#xff1a;Header…

按月统计数据——mysql实现

业务场景 对某类业务数据&#xff0c;按月统计数量&#xff0c;返回当年各个月份的任务数量。 思路 按照创建时间&#xff0c;格式化为yyyy-mm的month字段&#xff0c;然后根据month进行分组查询&#xff0c;统计count作为数量 SELECT DATE_FORMAT(create_time, %Y-%m) AS mon…

面向面试知识--Lottery项目

面向面试知识–Lottery项目 1.设计模式 为什么需要设计模式&#xff1f; &#xff08;设计模式是什么&#xff1f;优点有哪些&#xff1f;&#xff09; 设计模式是一套经过验证的有效的软件开发指导思想/解决方案&#xff1b;提高代码的可重用性和可维护性&#xff1b;提高团…

【使用malloc函数动态模拟开辟二维数组的三种方法】

方法1.用指针数&#x1f9d0; 首先&#xff1a;看一下原理图(以开辟整型二维数组三行四列为例&#xff0c;以下都是):&#x1f4bb; 其次&#xff1a; 先看一下用malloc申请一维数组:&#x1f92f; int *p(int *)malloc(10*sizeof(int));//开辟10个内存空间接着&#xff1a;申…

Docker 安装MySQL Exporter

1.拉取镜像 [rootlocalhost ~]# docker pull prom/mysqld-exporter2.MySQL创建用户并分配权限 CREATE USER exporterlocalhost IDENTIFIED BY 123456 WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO exporterlocalhost; FLUSH PRIVILEGE…

正式发布 sCrypt CLI命令行工具

sCrypt CLI 使 sCrypt 的开发更快更容易的 CLI 工具。 安装 npm install -g scrypt-cli如何使用 scrypt project my-proj或者 scrypt p my-proj该命令创建一个新目录 my-proj&#xff0c;其中包含一个 demo sCrypt 智能合约以及所需的脚手架。 同时包含一个项目 README.md…

redis配置到服务自启动——笔记

进入redis目录 redis-server.exe --service-install redis.windows.conf --loglevel verbose如果需要卸载服务就执行 redis-server --service-uninstall