当前位置: 首页 > 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.…...

OpenClaw爬虫框架Docker化实践:从环境封装到生产部署

1. 项目概述&#xff1a;当“OpenClaw”遇见Docker最近在折腾一个挺有意思的项目&#xff0c;叫“OpenClaw”。这名字听起来有点酷&#xff0c;对吧&#xff1f;它本质上是一个网络爬虫框架&#xff0c;但设计理念和常见的Scrapy、Puppeteer这些不太一样。OpenClaw更侧重于“规…...

开源本地AI API网关:统一管理Ollama等模型,简化LLM应用开发

1. 项目概述&#xff1a;一个开源的本地AI API网关最近在折腾本地大语言模型&#xff08;LLM&#xff09;的朋友&#xff0c;估计都遇到过类似的烦恼&#xff1a;模型装好了&#xff0c;界面也跑起来了&#xff0c;但想把它集成到自己的应用里&#xff0c;或者想用一套统一的接…...

从汽车到工控:手把手教你用TJA1050和SN65HVD230搞定不同电压域的CAN节点互联

从汽车到工控&#xff1a;手把手教你用TJA1050和SN65HVD230搞定不同电压域的CAN节点互联 在汽车电子与工业控制系统的融合设计中&#xff0c;工程师常面临一个典型挑战&#xff1a;如何将5V供电的汽车电子模块&#xff08;如TJA1050&#xff09;与3.3V供电的工业控制器&#xf…...

告别繁琐操作:用League Akari重新定义英雄联盟游戏体验

告别繁琐操作&#xff1a;用League Akari重新定义英雄联盟游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在紧张的英雄选择阶…...

Kubernetic:提升Kubernetes管理效率的桌面客户端工具

1. 项目概述&#xff1a;一个为Kubernetes而生的桌面客户端 如果你和我一样&#xff0c;每天的工作都离不开Kubernetes&#xff0c;那你肯定对 kubectl 命令行工具又爱又恨。爱的是它功能强大、无所不能&#xff1b;恨的是它那陡峭的学习曲线和需要时刻记忆的大量命令与参数。…...

给娃规划信奥路?先看懂CSP-J/S初赛分数线背后的“地域密码”(2019-2024年数据解读)

解码CSP-J/S初赛分数线&#xff1a;家长必知的地域竞争策略&#xff08;2019-2024实战指南&#xff09; 当孩子第一次接触信息学奥赛时&#xff0c;大多数家长都会面临相似的困惑&#xff1a;为什么同样的分数在A省能轻松晋级&#xff0c;在B省却可能止步初赛&#xff1f;过去…...

Wand-Enhancer:解锁WeMod全部潜力的开源增强工具

Wand-Enhancer&#xff1a;解锁WeMod全部潜力的开源增强工具 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 在游戏辅助工具的世界里&#xff0c;WeMod无…...

CircuitPython开发实战:串口通信与编辑器配置全攻略

1. 项目概述与核心价值 如果你刚开始接触CircuitPython&#xff0c;或者从Arduino这类环境转过来&#xff0c;可能会觉得有点懵&#xff1a;代码写好了&#xff0c;怎么看到板子的输出&#xff1f;板子报错了&#xff0c;怎么知道错在哪里&#xff1f;为什么我的代码文件一保存…...

算法联盟·全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析

算法联盟全域数学公理体系下黑洞标量毛发与LVK引力波O4全维理论、求导、证明、计算、验证、分析 算法联盟 全域数学公理体系下黑洞标量毛发与 LVK 引力波O4 全维理论、求导、证明、计算、验证、分析 所属体系&#xff1a;算法联盟 ROOT 全域数学网格第一性原理&#xff08;AI科…...

3分钟解决Windows热键冲突:Hotkey Detective让你重掌键盘控制权

3分钟解决Windows热键冲突&#xff1a;Hotkey Detective让你重掌键盘控制权 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...