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

上海网站开发有限公司百度推广有哪些售后服务

上海网站开发有限公司,百度推广有哪些售后服务,网站建设建站,网站项目开发文章目录递归函数递归例题特点效率优点递归函数 递归 递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身#xff0c;每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推#xff0c;直到遇到墙后返回#xff0c;这个墙就是结束条… 文章目录递归函数递归例题特点效率优点递归函数 递归 递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推直到遇到墙后返回这个墙就是结束条件。 所以递归要有两个要素结束条件与递推关系 注: 递归的时候每次调用一个函数计算机都会为这个函数分配新的空间这就是说当被调函数返回的时候调用函数中的变量依然会保持原先的值否则也不可能实现反向输出。 例题 计算n的阶乘 #include stdio.h int factorial(int n) {int result;if (n0) //判断例外{printf(输入错误!\n);return 0;} else if (n0 || n1){result 1; //回推墙}else{result factorial(n-1) * n; //递推关系这个数与上一个数之间的关系。}return result; }int main(){int n 5; //输入数字5计算5的阶乘printf(%d的阶乘%d,n,factorial(n));return 0; }程序在计算5的阶乘的时候先执行递推当n1或者n0的时候返回1再回推将计算并返回。由此可以看出递归函数必须有结束条件。 斐波那契数列 斐波那契数列指的是这样一个数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, ···这个数列从第三项开始,每一项都等于前两项之和. #include stdio.hlong fibonacci( long num ) {if ( num 0 || num 1 ){return num;}else{return fibonacci( num -1 ) fibonacci( num -2 );} }void main() {long number;puts(请输入一个正整数: );scanf(%ld, number);printf(斐波那契数列第%ld项为: %ld\n, number, fibonacci( number ) );} 应用题~~ 小明为了学好英语需要每天记单词第一天记1个第二天记2个依次类推请用代码完成算出小明第10天开始的时候会了多少个单词 分析 墙(结束条件)是“第一天记1个” 递推关系是“第n天记的单词 第n-1天记的单词数量n #include stdio.h /* 定义获取单词数量的函数 */ int getWordNumber(n) { if(n 1){return 1; //回推墙}else{return getWordNumber(n-1)n ; //递推关系} } int main() {int num getWordNumber(10); //获取会了的单词数量printf(小明第10天记了:%d个单词。\n, num);return 0; }特点 递归函数特点 1. 每一级函数调用时都有自己的变量但是函数代码并不会得到复制如计算5的阶乘时每递推一次变量都不同 2. 每次调用都会有一次返回如计算5的阶乘时每递推一次都返回进行下一次 3. 递归函数中位于递归调用前的语句和各级被调用函数具有相同的执行顺序 4. 递归函数中位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反 5. 递归函数中必须有终止语句。一句话总结递归自我调用且有完成状态。 效率 系统栈也叫核心栈、内核栈 是内存中属于操作系统空间的一块区域其主要用途为 (1)保存中断现场对于嵌套中断被中断程序的现场信息依次压入系统栈中断返回时逆序弹出 (2)保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。 用户栈 是用户进程空间中的一块区域用于保存用户进程的子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。 我们编写的递归程序属于用户程序因此使用的是用户栈。 栈溢出 函数调用的参数是通过栈空间来传递的在调用过程中会占用线程的栈资源。而递归调用只有走到最后的结束点后函数才能依次退出而未到达最后的结束点之前占用的栈空间一直没有释放如果递归调用次数过多就可能导致占用的栈资源超过线程的最大值从而导致栈溢出导致程序的异常退出。 综上: 函数调用的时候每次调用时要做地址保存参数传递等这是通过一个递归工作栈实现的。具体是每次调用函数本身要保存的内容包括局部变量、形参、调用函数地址、返回值。那么如果递归调用N次就要分配N次局部变量、N次形参、N次调用函数地址、N次返回值,势必效率低. 优点 代码简洁、清晰,易懂 循环能干的事,递归都能干;递归能干的循环不一定能干 对于我们,能用循环解决的,尽量不适用递归.
http://wiki.neutronadmin.com/news/154303/

相关文章:

  • 前端页面设计网站ppt免费下载模板网站
  • 户外媒体网站建设免费网站建设规划表
  • 国内做音乐网站做远程培训网站用什么系统
  • 服装企业网站源码河北高端建设网站
  • 安徽建站优化没有网站可以做seo排名吗
  • 做外贸的j交易网站网站套餐到期啥意思
  • 如何建单位网站大连seo排名
  • 网站前端是什么seo数据优化教程
  • 建设部网站39文件网站开发全程实例
  • 网站开发公司内部数据字典北京关键词优化报价
  • 博罗网站设计公司seo优化评论
  • 上海网站设计的公司做膜结构那个网站好
  • 网站县区分站点建设网站的前端和后端
  • 有做外贸的平台网站吗哪个好用?
  • 济南网站建设seo优化设计室内装修效果图
  • wordpress网站弹窗插件wordpress 模板 含数据
  • pc端网站建设哪里有做网站不给源代码
  • 建设银行网站的目的是什么wordpress查询码
  • 恐怖音乐怎么做的视频网站wordpress 用户 插件
  • 常州做网站公司有哪些中国建设银行官网站纪念币
  • 怎样做淘宝的导购网站推广建设网站学什么语言
  • 襄阳市建设工程造价管理站网站手机网站 幻灯片js
  • 站长之家官网查询深圳建立网站
  • 凤岗镇做网站卧龙区2015网站建设价格
  • 目前流行的app网站开发模式jeecms 怎么建设网站
  • 四川建设工程网站网站 医院信息化建设
  • 气象网站建设需求方案陕西省建设资质是哪个网站
  • 广州网站快速制作上海有哪些外贸公司不错的
  • 做gif网站梦织网站
  • 自己有服务器如何架设网站温州敎玩具网站建设