当前位置: 首页 > news >正文

【c语言】函数递归调用

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

c语言系列专栏: c语言之路重点知识整合  

目录

一、递归基本概念的理解

二、递归算法的基本模式

一些习题实例:

两个正整数的最大公约数

用递归算法实现斐波那契数列


一、递归基本概念的理解

函数递归就是函数在其内部再次调用自己的过程。

递归是一种解决问题的方法,它将问题分解成更小的子问题,直到这些子问题的解决方法变得简单明了。在递归过程中,当执行到一个终止条件时,递归过程就会结束,返回结果给上一级递归函数,并依次返回给最初调用的函数。

递归算法在解决一些实际问题时会更简单明了 

二、递归算法的基本模式

递归算法的基本模式:终止条件,递推公式

例如:        计算阶乘5*4*3*2*1=

#include <stdio.h>
int fun01(int n);
int main()
{printf("%d\n",fun01(5));return 0;
}int fun01(int n)
{if (n==1)        //终止条件{return 1;          }return n*fun01(n-1);    //递推公式
}

阶乘计算到1,终止条件为n==1

阶乘计算为前一个数累乘到后一个数,递推公式为   n*fun01(n-1)

一定要有终止条件!!因为没有终止条件会一直循环,过度递归可能会导致栈溢出。

一些习题实例:

两个正整数的最大公约数

不断向下取余,直到取尽

#include <stdio.h>
int fun11(int m,int n);
int main()
{/* 递归实现:两个正整数的最大公约数 */printf("%d\n",fun11(124,36));return 0;
}int fun11(int m,int n)
{if (m % n == 0){return n;}return fun11(n, m % n);
}

使用调试器查看:

 最终返回结果为4

用递归算法实现斐波那契数列

后一项等于前两项之和,直到开头两项为止 

#include <stdio.h>
int fun13(int n);
int main()
{/*用递归算法实现斐波那契数列: */int i;for(i=1;i<=20;i++){printf("%d,",fun13(i));}return 0;
}
int fun13(int n)
{if (n<=2){return 1;}return fun13(n-1)+fun13(n-2);
}

大家的点赞、收藏、关注将是我更新的最大动力!欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容! 

相关文章:

【c语言】函数递归调用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ…...

SPSS如何进行判别分析之案例实训?

文章目录 0.引言1.一般判别分析2.逐步判别分析3.决策树分析 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对SPSS进行了学习&#xff0c;本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对判别分析进行阐述。 1…...

Windows 10 字体模糊发虚的问题及解决方法

Windows 10字体模糊发虚! 如何解决?Windows 10是一款常见的操作系统&#xff0c;它拥有各种各样的功能&#xff0c;但是有些用户发现&#xff0c;在使用Windows 10时&#xff0c;字体会变得模糊发虚&#xff0c;这给用户带来了很多不便。下面&#xff0c;我们就来看看如何解决…...

渔人杯部分wp

文章目录 渔人杯神仙姐姐阿拉丁飘啊飘 渔人杯 神仙姐姐 点击拜 &#xff0c;抓包发现get请求了/sx.php 返回如下 {"code":0,"num":1,"flag":"ctfsh0w-f1ag-n0t-h3r3-th1s-msg-just-a-j0ke-}{"}在repeater重复请求&#xff0c;发现…...

测试用例覆盖不全面的解决方法

测试用例覆盖不全面的解决方法 问题分析 在测试用例设计过程中&#xff0c;容易出现思维受限或者需求盲区&#xff0c;我们不可能完全覆盖用户使用的所有场景&#xff0c;编写测试用例的时不可能把所有的场景都能想周全&#xff0c;把所有的场景下的情况都写成测试用例去模拟、…...

AWS Lambda - 第一部分

Hello大家好&#xff0c;我们今天开始讨论AWS Lambda的内容。 SAP认证考试会涉及到很多Lambda的内容&#xff0c;想要通过认证考试虽然不一定非要精通开发&#xff0c;但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。 我们开始吧&#xff01; Lambda与…...

Java 基础进阶篇(七)—— 面向对象三大特征之三:多态

文章目录 一、多态的概述二、多态中成员访问特点 ★三、多态的优势与劣势四、多态下的类型转换4.2 自动类型转换&#xff08;从子到父&#xff09;4.2 强制类型转换&#xff08;从父到子&#xff09;4.3 instanceof 关键字 一、多态的概述 多态&#xff1a;是指执行同一个行为…...

day9 实现UDP通信

目录 socket函数拓展 UDP通信实现过程 代码实现 socket函数拓展 send与recv函数&#xff1a; /*用于发送数据*/ ssize_t send(int sockfd, const void *buf, size_t len,int flags);/*用于接收数据*/ ssize_t recv(int sockfd, void *buf, size_t len,int flags);/*前三个…...

自然语言处理(NLP)在放射学报告评价中的应用:应用和技术进展

自然语言处理&#xff08;NLP&#xff09;在放射学报告评价中的应用&#xff1a;应用和技术进展 写在最前面摘要引言先进的技术BERT算法优点 Applications in Radiology 放射学应用Quality 质量将关键发现通知转诊临床医生放射科关键绩效指标和评估 个别放射科医生的表现同行学…...

日常开发为什么需要做Code Review

日常开发为什么需要做Code Review 一、背景 最近在开始一个新的项目&#xff0c;在查看项目中代码及具体细节时&#xff0c;发现这个项目真实一堆乱麻&#xff0c;没有规律可循&#xff0c;可总结下这个项目的缺陷 没有规律可循&#xff0c;没有结构性设计不做公共封装&#…...

OSPF的优化

O_ASE --- 标志域外路由信息 --- 因为域外的路由信息不可控性较强&#xff0c;所以&#xff0c;信任程度较低&#xff0c;我们将其优先级设置为150。 LSA --- 链路状态通告 --- OSPF协议在不同网络环境下产生的用于携带和传递不同的信息。 LSDB --- 链路状态数据库 SPF --- 最短…...

C++项目中打破循环依赖的锁链:实用方法大全

C项目中打破循环依赖的锁链 一、简介&#xff08;Introduction&#xff09;1.1 循环依赖的定义&#xff08;Definition of Circular Dependencies&#xff09;1.2 循环依赖带来的问题&#xff08;Problems Caused by Circular Dependencies&#xff09;1.3 解决循环依赖的重要性…...

IDEA连接HBase

新建maven工程 打开pom.xml添加hbase需要的依赖 <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.3.5</version> </dependency><dependency><groupId>org.apa…...

Mask2Former来了!用于通用图像分割的 Masked-attention Mask Transformer

原理https://blog.csdn.net/bikahuli/article/details/121991697 源码解析 论文地址&#xff1a;http://arxiv.org/abs/2112.01527 项目地址&#xff1a;https://bowenc0221.github.io/mask2former Mask2Former的整体架构由三个组件组成&#xff1a; 主干特征提取器&#xff…...

【量化课程】01_投资与量化投资

文章目录 1.1 什么是投资1.1.1 经济意义上的投资1.1.2 投资的分类1.1.3 金融投资1.1.4 个人投资者投资品种1.1.5 投资VS投机 1.2 股票投资的基本流程1.3 常见的股票投资分析流派1.3.1 投资者分析流派 1.4 什么是量化投资1.4.1 量化投资基本概念1.4.2 量化投资的优势1.4.3 量化投…...

SpringBoot实现导出Excel功能

1 问题背景 需求要做一个导出excel的功能 2 前言 本篇着重阐述后端怎么实现&#xff0c;前端实现的部分只会粗略阐述。该实现方案是经过生产环境考验的&#xff0c;不是那些拿来练手的小demo。本文阐述的方案可以借鉴用来做毕设或者加到自己玩的项目中去。再次声明&#xff0c;…...

NSSCTF之Misc篇刷题记录⑧

NSSCTF之Misc篇刷题记录 [MMACTF 2015]welcome[广东强网杯 2021 团队组]欢迎参加强网杯[虎符CTF 2022]Plain Text[SWPUCTF 2021 新生赛]原来你也玩原神[SWPUCTF 2021 新生赛]我flag呢&#xff1f;[鹤城杯 2021]New MISC NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&…...

从零开始学习Linux运维,成为IT领域翘楚(七)

文章目录 &#x1f525;Linux下常用软件安装_JDK和Tomcat安装&#x1f525;Linux下常用软件安装_MySQL安装&#x1f525;Linux下常用软件安装_MySQL卸载 &#x1f525;Linux下常用软件安装_JDK和Tomcat安装 Jdk 安装 解压jdk安装包 tar -zxvf jdk-8u201-linux-x64.tar.gz -C/…...

优漫动游设计APP的UI界面需要注意哪些问题?

一、加载   加载时间的长短&#xff0c;很大程度的决定了用户体验是否有所提升&#xff0c;虽然理想中的页面加载出来应该一秒就够了&#xff0c;但是设计师不要忽略网络问题!如果网速不够的话&#xff0c;页面加载三五秒都算是快的了&#xff0c;所以在用户等待的过程中&a…...

面试 004

什么是 Java 内存结构 Java 内存结构就是 JVM 的运行书数据区的内存结构&#xff1a; 里面有堆、虚拟机栈、本地方法栈、程序计数器&#xff1b; 虚拟机栈&#xff1a;里面的数据结构是栈帧&#xff0c;存放了方法名&#xff0c;局部变量等信息 方法区在 1.8 的时候&#xf…...

CCF-202206-2-寻宝!大冒险!

目录 题目背景 问题描述 一、思路&#xff1a; 二、实现方法&#xff08;C&#xff09; 2.1、方法一&#xff08;int储存&#xff09; 思路&#xff1a; C实现如下&#xff1a; 2.2、方法二&#xff08;结构体储存&#xff09; 思路&#xff1a; 注意&#xff1a;边界…...

二叉搜索树中的众数

1题目 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&…...

认识JSP

什么是JSP? JSP&#xff08;Java Server Pages&#xff09;是一种类似于HTML的标记语言&#xff0c;用于创建动态Web页面。与HTML不同的是&#xff0c;JSP页面中可以嵌入Java代码&#xff0c;由Web服务器在动态页面中生成HTML代码&#xff0c;从而实现Web应用程序的前端交互效…...

MySQL数据管理

一、MySQL数据库管理 1、库和表 行&#xff08;记录&#xff09;&#xff1a;用来描述一个对象的信息 列&#xff08;字段&#xff09;&#xff1a;用来描述对象的一个属性 2、常用的数据类型 int &#xff1a;整型 float &#xff1a;单精度浮点 4字节32位 double &…...

第十九章 Unity 其他 API

本节介绍一些其他经常使用的Unity类。首先&#xff0c;我们回顾一下Vector3向量类&#xff0c;它既可以表示方向&#xff0c;也可以表示大小。它在游戏中可以用来表示角色的位置&#xff0c;物体的移动/旋转&#xff0c;设置两个游戏对象之间的距离。在我们之前的课程中&#x…...

sha256算法详解,用C语言模拟sha256算法

SHA-256是一种加密算法,它可以将任意长度的数据块计算出一个固定长度的输出值,通常是256位。SHA-256具有以下特点: 1. 固定输出长度:SHA-256的输出长度为256位,不受输入数据的长度限制。 2. 不可逆性:SHA-256采用单向哈希函数,即无法从输出值反向推出输入数据。 3. 抗…...

前端技术未来发展展望

前端技术在未来的发展中将继续保持快速、变化多样和创新性强的趋势。以下是我认为前端技术未来发展的几个方向&#xff1a; 框架和库的演进&#xff1a;框架和库的更新换代将继续加速。React、Vue、Angular等主流框架的更新周期将会缩短&#xff0c;同时各自的生态系统也将更加…...

第四十六天|dp

今天的题还是完全背包的题 139. Word Break 这道题其实用deque也能做,但是需要cache去记录之前尝试过的值,.相对简单的办法就是用完全背包了 这道题worddict就是物品.我们的dp[i]代表到i为止是不是能满足题意分成segmentation 处置化全为false,但是dp[0]True.这是因为为0时…...

汇编语言-复习自用

本文用于自我复习汇编语言&#xff0c;参考b站一位老师的讲解整理而成&#xff0c;感谢老师的无私付出视频链接链接 文章目录 1.第一章1.1计算机组成1.2读取1.3 寄存器及数据存储1.4 mov和and指令1.5 确定物理地址1.6 内存分段表示法1.7debug使用1.8CS:IP1.9jmp指令改变csip1.1…...

Android moneky自动点击应用设想

近期又有人发错私密消息到群聊天里&#xff0c;造成巨大反应的事件&#xff0c;可谓是一失手成大恨&#xff0c;名利受损。 而如果手机里安装一个monkey自动点击程序&#xff0c;没事的时候&#xff0c;跑跑monkey&#xff0c;倒一杯茶&#xff0c;静静的看手机屏幕在那里点击&…...

浦口区教育局网站集约化建设/茶叶seo网站推广与优化方案

1. 消息队列基本知识 1.1 消息队列使用场景 如下图&#xff0c;一个普通的订单支付系统架构&#xff0c;支付网关调用订单系统进行下单&#xff0c;然后调用积分系统去更新用户积分&#xff0c;当并发量很大的情况下&#xff0c;支付网关与微信平台频繁的进行回调&#xff0c…...

wordpress 能做周报/深圳市seo上词多少钱

目录 基本信息 基于Java的CacheCloud和RedisManager使用总结 CacheCloud&#xff1a; RedisManager&#xff1a; 两者差异&#xff0c;RedisManager欠缺的&#xff1a; 两者的共同障碍&#xff1a; Redis Monitoring tools and useful links 参考链接 以下内容摘自雪球…...

青岛网站制作服务/开鲁网站seo不用下载

https://www.cnblogs.com/wenyule/p/9740926.html转载于:https://www.cnblogs.com/sunxiuwen/p/10230380.html...

品牌型网站建设特点/淘宝运营培训课程免费

TCP 作为传输层的协议&#xff0c;是一个软件工程师素养的体现&#xff0c;也是面试中经常被问到的知识点。在此&#xff0c;我将 TCP 核心的一些问题梳理了一下&#xff0c;希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别&#xff1f;首先概括一下基本的区别:TCP是一个…...

做网站需要有/哪个软件可以自动排名

文丨Wonder 排版丨雪花各位博士大家好&#xff0c;这里是Wonder。在经过一段时间的游戏体验之后&#xff0c;博士们对游戏的内容应该有了一定的了解&#xff0c;相信大家也希望看到内容更加详实&#xff0c;更加硬核的攻略。因此&#xff0c;笔者这次为大家带来了关于干员面板…...

扬中会建网站/广告联盟怎么赚钱

最近在对CLR的学习过程中&#xff0c;不可避免的要看IL代码&#xff0c;而要想看IL代码&#xff0c;就必须对PE文件进行反编译&#xff0c;查看IL代码和元信息最靠谱的就是VS自带的ILDasm了&#xff0c;那么ILDasm又是如何附加到VS的呢&#xff1f; 接下来一一介绍。环境&#…...