文章目录

  • 递归的定义
  • 递归调用输出整数的每一位
  • 递归调用1加到n
  • 递归模拟实现strlen
  • 斐波那契数列

递归的定义

  简单的说递归就是自己调用自己,在分治算法中很多问题都是通过递归算法去解决的,其主要的思考方式是大事化小。
递归调用有两个必要条件
  1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。
  2.每次递归调用之后越来越接近这个限制条件。

递归调用输出整数的每一位

void print(int num)
{if (num == 0){return;}printf("%d\n", num % 10);print(num / 10);
}int main()
{int x = 4321;print(x);return 0;
}

递归调用1加到n

int ADDOnceToN(int n)
{if (n == 1){return 1;}return ADDOnceToN(n - 1) + n;
}int main()
{int n;scanf("%d", &n);printf("%d\n", ADDOnceToN(n));
}

递归模拟实现strlen

int my_strlen(char* str)
{if (*str == '\0'){return 0;}else{return 1 + my_strlen(str + 1);}
}int main()
{char a[] = "hello\n\\t\nworld";printf("%d\n", my_strlen(a));return 0;
}

斐波那契数列

int fib1(int n)
{if (n < 2){return n;}return fib1(n - 1) + fib1(n - 2);
}int fib2(int n)
{int f0 = 0, f1 = 1, f2 = n;int i = 2;while (i <= n){f2 = f1 + f0;f0 = f1;f1 = f2;i++;}return f2;
}int main()
{int s = 10;printf("%d\n", fib1(s));printf("%d\n", fib2(s));return 0;
}

浅谈递归和递归的简单程序相关推荐

  1. 编程浅谈-以一个初出茅庐的Java程序员视角

    编者是一个从事Java开发的普通软件攻城狮,迄今为止,粗粗算来不过刚刚进入编程的世界不过两年,但在这两年的光阴里,每当我抬头仰望星空(苦命加班)时脑海里总有这样一个疑问--"什么是编程&qu ...

  2. 浅谈信息学竞赛考场策略及程序测试

    浅谈信息学竞赛考场策略及程序测试 主题 本文作者是江苏省常州高级中学吴翼同学发布的信息学竞赛江苏省论文.内容对于大家备考十分有帮助,特分享给同学们,希望在中秋假期给大家的学习增加一点动力! 考场策略和 ...

  3. 浅谈KNN算法原理及python程序简单实现、KD树、球树

    最近比较空闲,打算利用这一段时间理一下机器学习的一些常见的算法.第一个是KNN算法: KNN 1.原理: KNN,K-NearestNeighbor---K最近邻 K最近邻,就是K个最近的邻居的意思, ...

  4. 浅谈对前端开发的简单认识

    学而不思则罔,从最简单,最基础的开始,也考验一下我的表达能力. 以下是个人的一点看法和观点,欢迎批评指正,及各种建议.谢谢. 目录: 1 我对前端开发的概念的理解 2 我对网页设计,ui ,前端开发的 ...

  5. 浅谈用VB6.0编写“特洛伊木马”程序

    "特洛伊木马"有被称为BO, 是在美国一次黑客技术讨论会上由一个黑客组织推出的.它其实是一种客户机/服务器程序,其利用的原理就是:在本机直接启动运行的程序拥有与使用者相同的权限.因 ...

  6. 浅谈c语言中怎么让程序直接结束(待补充)

    1.可以选择用return 如果是int main,就直接写return 0 如果是void main,就直接写return 2.goto-label(不建议使用) 即利用goto强制性跳转 直接应用 ...

  7. 浅谈SSM框架下实现简单登录界面

    SSM框架搭建结果 Login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8 ...

  8. 浅谈IDEA中JBDC的简单增删查改操作及简单封装

    连接数据库 1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); 本行代码主要作用是加载(注册)数据库驱动(到JVM) 2.创建链接 Con ...

  9. 指下码上横戈行——递归浅谈

    指下码上横戈行--递归浅谈 什么是递归,十三大一下学期上C语言课的时候,老师就在课上面讲过递归的知识,然而十三当时并没有懂,迷迷糊糊地只是把递归的两个条件记住了,一个是递归需要终止条件,另一个是递归的 ...

  10. 浅谈Visual C#进行图像处理

    作者:彭军 http://pengjun.org.cn 这里之所以说"浅谈"是因为我这里只是简单的介绍如何使用Visual C#进行图像的读入.保存以及对像素的访问.而不涉及太多的 ...

最新文章

  1. iOS自动化测试之Appium的安装和使用
  2. ubuntu访问win7
  3. NMSE考试常见问题
  4. centos7 yum安装kubernetes 1.1
  5. 交换机组最常见的8大故障及解决方法
  6. Gridview中实现求和统计功能
  7. 设计模式--23、访问者模式
  8. python循环绘制六角星_《Python游戏趣味编程》 第3章 美丽的圆圈画
  9. python os.access_Python用access判断文件是否被占用的实例方法
  10. 智慧交通不能用WiFi,还能算是智慧出行吗?
  11. 在线教育知识付费源码,视频教程学习系统源码,网课小程序源码
  12. html5实例绘制时钟代码,使用html5 canvas 画时钟代码实例分享
  13. 免疫算法小结及算法实例(附Matlab代码)
  14. 本科毕设研究记录(一)————小样本综述
  15. 勇者斗恶龙 java实现
  16. 学生台灯哪个品牌的专业?盘点小学生台灯品牌排行榜
  17. 大数据分析的四个关键环节
  18. 云南省计算机一级b类模拟题,云南省计算机一级B模拟题.doc
  19. MyCat Catlet实现 详解
  20. 【实用】JavaScript中Video使用详解过程(多视频列表循环播放)

热门文章

  1. java.io.IOException: The temporary upload location [C:\Users\...\ROOT] is not valid
  2. 书_学习过程_四大天王_good_计算机经典书籍介绍[转]
  3. 【算法练习】80.字符串轮转——奇淫技巧
  4. 求AUC 95%置信区间
  5. Arduino多线程SCoop库
  6. 吃货联盟订餐系统Java代码
  7. 【论文阅读】Learning with Hypergraphs: Clustering, Classification, and Embedding
  8. 前端工具字典,为你开发路上披荆斩棘
  9. HUAWEI 机试题:众数和中位数
  10. Nvidia AGX Orin MAX9296 GMSL 载板设计要点