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

C语言:递归

递归简单来说就是函数自己调用自己。

特点:一般代码比较简洁,没有出口。

例子1:用一个函数计算阶乘

#include<stdio.h>//不用递归
int fac(int n)
{int val = 1;for (int i = 1; i <=n;i++){val *= i;}return val;
}//用递归
int fac1(int n)
{if (n == 1){return 1;}return n * fac1(n - 1);
}int main()
{printf("%d\n", fac(5));printf("%d\n", fac1(5));return 0;
}

例子2:斐波那契值

#include<stdio.h>//1 2 3 4 5 6 7  8   从第三个数开始,它的值等于它前两项的和
//1 1 2 3 5 8 13 21
//用递归
int fibonacci(int n)
{if (n == 1 || 2 == n){return 1;}return fibonacci(n - 2) + fibonacci(n - 1);
}//循环法
int fibo(int n)
{if (1 == n || 2 == n){return 1;}int v1 = 1;int v2 = 1;int v3;for (int i=3;i<=n;i++){v3 = v1 + v2;v1 = v2;v2 = v3;}return v3;
}int main()
{printf("%d\n", fibo(40));printf("%d\n", fibonacci(40));return 0;
}

例子3:倒序打印

#include<stdio.h>void print(char* str)//abcd dcba倒序打印
{if (*str == '\0'){return;}print(str + 1);        //printf("%c", *str);此为正打印printf("%c", *str);    //print(str + 1);    abcd abcd
}int main()
{print("abcd");return 0;
}

相关文章:

C语言:递归

递归简单来说就是函数自己调用自己。 特点&#xff1a;一般代码比较简洁&#xff0c;没有出口。 例子1&#xff1a;用一个函数计算阶乘 #include<stdio.h>//不用递归 int fac(int n) {int val 1;for (int i 1; i <n;i){val * i;}return val; }//用递归 int fac1(…...

自动化测试框架pytest+allure+requests

最近复习了一下关于自动化测试的内容&#xff0c;结合[码尚教育] 相关的思路来对测试框架进行开发。 争取实现零代码来实现自动化测试环境的搭建 AutoTestFrame 介绍 AutoTestFrame是一个基于Python的自动化测试框架&#xff0c;旨在帮助测试人员快速、高效地完成测试任务。…...

Python 笔记 numpy.ndarray切片

NumPy 的 ndarray 类型提供了非常灵活的切片功能&#xff0c;可以方便地访问和操作数组中的元素。切片允许您通过指定索引来选择数组的一部分。下面是一些基本的切片操作及其解释。 一维数组的切片 对于一维数组&#xff0c;切片操作类似于 Python 列表的切片。 示例 impor…...

一、HTML5知识点精讲

一、HTML5介绍 html是用来描述网页的一种语言&#xff08;就是写网页的一种语言&#xff09;。 它和CSS&#xff0c;JS称为网页三要素。 HTML负责把元素简单呈现在网页上&#xff0c;是网页的身体CSS负责给网页元素添加各种样式&#xff0c;是网页的衣服JS负责实现各种动态、…...

【杂乱算法】前缀和与差分

前缀和 文章目录 前缀和一维应用 二维差分一维 二维扩展1、前缀和与哈希表 一维 一个数组prefix中&#xff0c;第i个元素表示nums[0]至nums[i-1]的总和&#xff0c;那么我们就称这个prefix数组是nums数组的前缀和。 prefix [ i ] ∑ j 0 i nums [ j ] \text{prefix}[i] \s…...

Arduino调试ESP32常见问题 exit status 1

问题1&#xff1a;代码上传&#xff08;烧录&#xff09;报Failed uploading: uploading error: exit status 1大概率原因&#xff1a;没有安装对应的驱动&#xff0c;我的ESP32驱动是CH340点击这里下载CH340 下载后打开&#xff0c;若出现乱码不用在意&#xff0c;点击第一个按…...

“决胜面试:高频题目与算法策略一览”

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…...

Node-RED的安装

最近对Node-RED比较感兴趣&#xff0c;因为在上OpenHarmony课程的时候&#xff0c;一直想找一个可以通过MQTT控制设备的低代码客户端解决方案。第一次指导Node-RED是在试用聆思开发板的时候&#xff0c;它的云端就是使用的Node-RED。 在安装Node-RED之前&#xff0c;请确保您的…...

java中的Collections

Java 的集合框架(Collections Framework)提供了一组标准的数据结构接口和类,用于存储和操作数据。Java 集合类位于 java.util 包中,主要包括以下几个核心接口和实现类。 1. 核心接口 1.1. Collection 接口 Collection 是集合框架的根接口,但它本身并不提供任何直接实现…...

linux Qt QkeyEvent及驱动键盘按键捕获

基于正点原子 QT中有专门的类处理键盘事件的类QKeyEvent 1.include “QKeyEvent” 查看它的说明中的描述 也就是说接受按键事件在keyPressEvent和keyReleaseEvent这两个函数&#xff0c;继续查看 重构这个函数 查看输入的QKeyEvent类&#xff0c;发现有一个方法key返回哪一个按…...

【GH】【EXCEL】P6: Shapes

文章目录 componentslinepicture components line picture Picture A Picture object Input parameters: Worksheet (Generic Data) A Worksheet, Workbook, Range Object, Excel Application, or Text Worksheet NameName (Text) An optional object nameLocation (Point) A p…...

google浏览器chrome用户数据(拓展程序,书签等)丢失问题

一、问题背景 我出现这个情况的问题背景是&#xff1a;因为C盘块满了想清理一部分空间&#xff08;具体看这&#xff1a;windows -- C盘清理_c盘softwaredistribution-CSDN博客&#xff09;&#xff0c;于是找到了更改AppDatta这个方法&#xff0c;但因为&#xff0c;当时做迁移…...

数据结构——链式队列和循环队列

目录 引言 队列的定义 队列的分类 1.单链表实现 2.数组实现 队列的功能 队列的声明 1.链式队列 2.循环队列 队列的功能实现 1.队列初始化 (1)链式队列 (2)循环队列 (3)复杂度分析 2.判断队列是否为空 (1)链式队列 (2)循环队列 (3)复杂度分析 3.判断队列是否…...

数据库死锁解决方法,学费了吗?

避免死锁&#xff1a;尽量设计良好的数据库结构&#xff0c;避免出现死锁的情况。可以使用合适的事务隔离级别&#xff0c;以及良好的并发控制策略。 死锁检测和回滚&#xff1a;当检测到死锁时&#xff0c;可以使用死锁检测算法来确定死锁的存在&#xff0c;并回滚其中一个或…...

API网关之Apache ShenYu

Apache ShenYu&#xff08;原名Soul&#xff09;是一个开源的API网关&#xff0c;旨在支持高性能、跨语言和云原生架构。它为管理和控制客户端与服务之间的数据流提供了一种高效且可扩展的解决方案。 文档见 Apache ShenYu 介绍 | Apache ShenYu 以下是Apache ShenYu的详细介…...

ECMA Script 6

文章目录 DOM (Document Object Model)BOM (Browser Object Model) let 和 const 命令constObject.freeze方法跨模块常量全局对象的属性 变量的结构赋值数组结构赋值对象解构赋值字符串解构赋值数值和布尔值的解构赋值函数参数解构赋值圆括号的问题 解构赋值的用途 字符串的扩展…...

如何在不破产的情况下训练AI模型

在当今的人工智能领域,训练复杂的AI模型——特别是大型语言模型(LLM)——需要巨大的算力支持。对于许多中小型企业来说,高昂的成本常常成为一个难以逾越的障碍。然而,通过采用一些策略和最佳实践,即使是在资源有限的情况下,也能有效地训练出高质量的AI模型。本文将介绍几…...

常用开发组件Docker部署保姆级教程

说明 本文总结了一些常用组件的Docker启动命令及过程&#xff0c;在开发过程中只需花费数分钟下载和配置即可完美使用这些服务。 Mysql MySQL 是一种开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;目前由 Oracle 公司维护。MySQL 以其高性能、可靠性和易用…...

MySql高级视频笔记

索引 索引 : 是帮助MySql高效查询数据的数据结构 优势&劣势 优势: 提高数据检索的效率, 降低数据库的IO成本通过索引列队数据进行排序, 降低数据的排序成本, 降低CPU的消耗 劣势: 索引维护了主键信息, 并指向表中数据记录, 也是占用磁盘空间的索引提高了查询效率, 但索引也…...

二十二、状态模式

文章目录 1 基本介绍2 案例2.1 Season 接口2.2 Spring 类2.3 Summer 类2.4 Autumn 类2.5 Winter 类2.6 Person 类2.7 Client 类2.8 Client 类的运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 State ( 状态 )3.1.2 ConcreteState ( 具体的状态 )3.1.3 Context ( 上下文 )3.…...

Driver Store Explorer:彻底清理Windows驱动存储,让你的系统运行如新的专业工具

Driver Store Explorer&#xff1a;彻底清理Windows驱动存储&#xff0c;让你的系统运行如新的专业工具 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来…...

超自动化巡检:如何应对海量增长的基础设施?

在数字化转型的浪潮中&#xff0c;企业IT基础设施正经历着前所未有的指数级增长。从物理服务器到虚拟机&#xff0c;从容器集群到云原生环境&#xff0c;从传统数据中心到边缘节点&#xff0c;运维对象的数量与种类正在以几何级数膨胀。某大型企业单日告警量可达130万条&#x…...

PHPExcel批量数据导入终极指南:验证、清洗与入库全流程 [特殊字符]

PHPExcel批量数据导入终极指南&#xff1a;验证、清洗与入库全流程 &#x1f680; 【免费下载链接】PHPExcel ARCHIVED 项目地址: https://gitcode.com/gh_mirrors/ph/PHPExcel PHPExcel是一款强大的PHP库&#xff0c;专门用于处理Excel文件的读取、写入和操作。虽然该项…...

LZ4并行压缩:线程池设计与性能瓶颈突破的终极指南

LZ4并行压缩&#xff1a;线程池设计与性能瓶颈突破的终极指南 【免费下载链接】lz4 Extremely Fast Compression algorithm 项目地址: https://gitcode.com/GitHub_Trending/lz/lz4 LZ4作为一款Extremely Fast Compression algorithm&#xff0c;其并行压缩能力是提升处…...

16nm FinFET与3D-IC设计验证的技术突破与应用

1. 16nm FinFET与3D-IC设计验证的技术突破2013年9月&#xff0c;ANSYS子公司Apache Design与台积电&#xff08;TSMC&#xff09;达成重要合作&#xff0c;将RedHawk和Totem工具集成到TSMC 16nm FinFET参考流程和3D-IC参考流程中。这一合作标志着半导体设计验证技术迈入新阶段&…...

Resemble Enhance:AI语音增强的终极指南,让嘈杂录音秒变专业音频

Resemble Enhance&#xff1a;AI语音增强的终极指南&#xff0c;让嘈杂录音秒变专业音频 【免费下载链接】resemble-enhance AI powered speech denoising and enhancement 项目地址: https://gitcode.com/gh_mirrors/re/resemble-enhance 你是否曾因录音环境嘈杂而烦恼…...

基于Apify与AI模型的产品安全风险智能识别系统构建指南

1. 项目概述&#xff1a;一个面向产品安全与消费者风险管理的智能工具最近在梳理一些供应链和电商合规的项目时&#xff0c;我反复被一个核心痛点困扰&#xff1a;如何系统性地、自动化地识别和评估海量商品信息中潜藏的消费者风险&#xff1f;无论是作为平台方的风控团队&…...

Vivado仿真避坑指南:从Testbench编写到波形调试的完整实战(以流水灯为例)

Vivado仿真避坑指南&#xff1a;从Testbench编写到波形调试的完整实战&#xff08;以流水灯为例&#xff09; 在FPGA开发中&#xff0c;仿真环节往往是新手工程师最容易"踩坑"的重灾区。明明RTL代码逻辑清晰&#xff0c;下载到板卡却出现异常行为&#xff1b;仿真波…...

如何利用Google Cloud服务加速OR-Tools大规模优化求解:完整实践指南

如何利用Google Cloud服务加速OR-Tools大规模优化求解&#xff1a;完整实践指南 【免费下载链接】or-tools Googles Operations Research tools: 项目地址: https://gitcode.com/gh_mirrors/or/or-tools OR-Tools是Google开发的强大运筹学工具库&#xff0c;能够高效解决…...

74HC595移位寄存器:3个GPIO扩展8路输出,级联驱动多路LED/继电器

1. 项目概述与核心价值在捣鼓嵌入式项目&#xff0c;尤其是玩灯光控制、驱动多路继电器或者做个小型的数字显示屏时&#xff0c;最常遇到的瓶颈是什么&#xff1f;十有八九是微控制器&#xff08;比如常见的ESP32、Arduino Uno、树莓派Pico&#xff09;上的GPIO引脚不够用了。一…...