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

山西手机网站建设北京网站建设平台

山西手机网站建设,北京网站建设平台,关于网上商城的推广方法,php mysql网站开发...目录 前言 一、递归原理 二、栈溢出 三、案例 1、两个整数的最大公约数 2、裴波那契序列 3、汉诺塔 ​4、判断是否为回文数 总结 前言 递归在计算机科学中是一个重要的概念,它指的是一个函数直接或间接地调用自身的过程。在C语言中,递归通常用于…

目录

前言

一、递归原理

二、栈溢出

三、案例

 1、两个整数的最大公约数

2、裴波那契序列

3、汉诺塔

​4、判断是否为回文数

总结


前言

        递归在计算机科学中是一个重要的概念,它指的是一个函数直接或间接地调用自身的过程。在C语言中,递归通常用于解决问题的分治或分解,将一个大问题拆分成较小的同类问题来解决。递归函数必须包含一个递归出口,即递归调用的条件,否则会导致无限循环而造成栈溢出。


一、递归原理

二、栈溢出

无终止条件会产生栈溢出的情况

#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、两个整数的最大公约数

#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);
}

2、裴波那契序列

        知道前两项的初始值作为递归结束条件,后一个数等于前两个数之和需要用递归调用得到。

#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==1||n==2){return 1;}return fun13(n-1)+fun13(n-2);
}

3、汉诺塔

#include <stdio.h>
void fun14(int n, char from,char mid,char to);
int main ()
{/* 汉诺塔 */fun14(3, 'a','b','c');return 0;
}void fun14(int n, char from,char mid,char to)
{if (n == 1){printf("%c->%c\n", from, to);}else{fun14(n - 1, from, to, mid);printf("%c->%c\n", from, mid,to);fun14(n - 1, mid, from, to);}
}

 4、判断是否为回文数

#include <stdio.h>
int fun15(int a[],int begin,int end);
int main  ()
{/* 递归判断是否回文数组*/int a[]={1,2,4,2,1};if (fun15(a,0,sizeof(a)/sizeof(a[0])-1)){printf("是回文数组\n");}else{printf("不是回文数组\n");}return 0;
}int fun15(int a[],int begin,int end)
{if (a[begin]!=a[end])//一定不是回文{return 0;}else if (begin==end||begin+1==end&&a[begin]==a[end])//一定是{return 1;}else if (a[begin]==a[end]){fun15(a,begin+1,end-1);}}

 


总结

        在C语言中,递归函数的设计需要考虑清楚递归调用的条件和递归出口,以及递归过程中相关变量的维护和更新。递归的应用领域很广泛,例如在数据结构、算法、图论等领域都有重要的应用。对于初学者来说,理解递归思想并熟练掌握递归函数的设计是很有意义的。

http://www.dtcms.com/a/433695.html

相关文章:

  • 品牌网站建设j小蝌蚪jwordpress 插件问题
  • 做网站图片如何不转下一行长沙网站建设 网站设计
  • 山东建设银行招聘网站网站设计制作在哪能看
  • 做陌陌网站什么做建筑工程ppt模板免费下载
  • 网站没收录的几大原因wordpress video gallery
  • wordpress 建站视频百度云服务器挂网站
  • 用来做区位分析的地图网站网站制作从零开始
  • 重庆营销型网站建设公司外贸网站的推广技巧有哪些
  • 网站icp备案怎么写外贸信托是哪个贷款平台
  • 易名中国网站pythom 网站开发规范
  • 微信网站怎么收款做网站套路
  • 类似享设计的网站金融培训网站源码
  • 我想做网站 怎么做呢营销号视频生成器网页版
  • 网站的备案可以管几年正品购物平台哪个最好
  • 网站设计过程柳江网站建设
  • 内网网站建设软件wordpress制作视频站
  • 如何将网站内容做chm搜索引擎优化的意思
  • TP5.1做的网站首页被挂马原因撸撸撸做最好的导航网站
  • 电脑做系统哪个网站比较好用域名到期与网站打不开
  • asp.net做网站教程资兴市住房和城乡建设局网站
  • 网站制作公司dedecms微信公众号入口
  • 网站建设具体流程图学做网站论坛视频下载
  • 网站验证wordpress导航页面模板下载地址
  • 自己做ppt网站wordpress个性首页
  • 建设银行官网首页网站公告西安网站搭建建设定制
  • 杭州网站排名wordpress 获取子类
  • 福州网站定制公司对网站开发流程的认识
  • 产品如何做网站推广网站建设有哪些方面
  • 做个企业网网站怎么做义马网站建设电话
  • 四川企业网站模板步骤网站建设项目经费的报告