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

【时时三省】(C语言基础)函数递归

山不在高,有仙则名。水不在深,有龙则灵。

                          ——csdn时时三省

什么是递归

程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小

就是函数自己调用自己就叫做递归

示例:

37a3b3fda2f64481a6457bf843f3eae0.jpg

 这就是最简单的一种递归

1ef72d70afc045e998be8908c5679d99.jpg

换成这个就可以看一下效果 输出的话就会一直打haha 因为main函数会调用自己 括号里面的main函数也要调用 就调用到了上面的main函数 就一直这样循环 每次调用自己都会打印一次haha 

但这个代码是存在问题的 会栈溢出

示例:

43b70b3081c94a08837ac021467275c9.jpg

 这个就是一个递归代码 

从main函数进来 num是0 要输入值 比如输入个123 然后到print函数 就要去调用print函数 这个时候n就等于123 n大于9就进到print里面去 print又要调用print这个时候123/10就等于12 然后继续上面的过程 知道n=1 就不会进入if语句了 也就是说递归不再继续了 直接打印n%10结果1这个函数用完以后从哪里来到哪里去 然后继续打印n%10的结果=2然后继续循环直到回到main函数里面 就结束了 打印出来就是 1 2 3

自己调用自己的时候后面的代码是没有机会执行的 直到执行完代码还会一层一层返回来

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 体验教程:通义灵码陪你备战求职季
  • 文件审查流程:使用指南
  • js录制音频
  • httpx,一个网络请求的 Python 新宠儿
  • 24年电赛——自动行驶小车(H题)基于 CCS Theia -陀螺仪 JY60 代码移植到 MSPM0G3507(附代码)
  • 校园选课助手【5】-解决Elasticsearch和MySQL同步
  • 无人机之保护野生动物篇
  • JS+H5打字练习器
  • JAVA-案列练习-ATM项目
  • DDOS攻击有哪些攻击手段?
  • linux内核,中断上下文,中断下半部的处理2种方法: tasklet_schedule,工作队列workqueue
  • docker安装与container基本使用
  • android 音频播放器,(一)SoundPool音频播放实例
  • linux 原子操作,信号量,互斥锁mutex,自旋锁splock
  • 嵌入式数据库 sqlite3
  • chrome扩展demo1-小时钟
  • echarts花样作死的坑
  • Octave 入门
  • overflow: hidden IE7无效
  • React-Native - 收藏集 - 掘金
  • Spring Cloud Feign的两种使用姿势
  • SSH 免密登录
  • Vue ES6 Jade Scss Webpack Gulp
  • XForms - 更强大的Form
  • Xmanager 远程桌面 CentOS 7
  • XML已死 ?
  • 前言-如何学习区块链
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 微信小程序--------语音识别(前端自己也能玩)
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 运行时添加log4j2的appender
  • (02)Unity使用在线AI大模型(调用Python)
  • (12)Linux 常见的三种进程状态
  • (19)夹钳(用于送货)
  • (第27天)Oracle 数据泵转换分区表
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (强烈推荐)移动端音视频从零到上手(上)
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)Unity3DUnity3D在android下调试
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [\u4e00-\u9fa5] //匹配中文字符
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Assignment] C++1
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BeginCTF]真龙之力
  • [C++] Windows中字符串函数的种类
  • [CQOI 2010]扑克牌
  • [hive] 窗口函数 ROW_NUMBER()
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页