热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C/C++程序设计常用算法介绍——递推法

文档声明:以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。资

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888



1、简述

  程序设计的关键就是算法,算法简单来说就是程序设计时问题解题步骤或者数据数据的流程。这里我们将介绍以下几种常用的算法:迭代法、穷举法、递推法、递归发、回溯法、贪婪法、查找算法、排序算法

本章节主要介绍递推法


2、递推法

递推法是通过数学推导,将复杂的运算分解成若干个重复的简单运算,而每次简单运算的结果都将作为下一次简单运算的输入,这样便能逐级计算出最终结果。

优点:

  算法简单,容易理解。

代码实例:

//已知:斐波那契(Fibonacci)数列为:f(n) = 1,1,2,3,5,8,13,21,34.... fn 求第 n 个数的值
//即:每个数都等于它前面两个数的和。
void fun(int n = 9)
{if ((1 &#61;&#61; n) || (2 &#61;&#61; n)){cout << "第" << n << "个数是&#xff1a;1" << endl;}if (n >&#61; 3){int f1 &#61; 1;int f2 &#61; 1;int f3 &#61; 2;for (size_t i &#61; 3; i <&#61; n; i&#43;&#43;){f3 &#61; f1 &#43; f2;f1 &#61; f2;f2 &#61; f3;}cout << "第" << n << "个数是&#xff1a;" << f3 << endl;}
}

运行结果&#xff1a;
在这里插入图片描述


推荐阅读
  • 本文详细介绍了使用C语言和C++实现的动态规划算法来解决数塔问题。通过具体的代码示例和算法解析,展示了如何高效地计算数塔的最大路径和。该方法不仅适用于数塔问题,还可应用于其他类似的组合优化问题。 ... [详细]
  • LeetCode挑战:寻找最长公共前缀字符串
    本文介绍了一种高效的方法来查找多个字符串的最长公共前缀(LCP)。通过分析字符串集合中的每个元素,我们利用了一个关键结论:最长公共前缀可以通过逐步比较每个字符串的前缀来确定。该方法不仅简洁明了,而且在实际应用中具有较高的效率和稳定性。通过对不同长度和复杂度的字符串进行测试,验证了该算法的有效性和鲁棒性。 ... [详细]
  • 在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ... [详细]
  • 题目:图像处理(HDU1828,计算周长并集,利用线段树与离散化技术进行扫描) ... [详细]
  • 点互信息在自然语言处理中的应用与优化
    点互信息(Pointwise Mutual Information, PMI)是一种用于评估两个事件之间关联强度的统计量,在自然语言处理领域具有广泛应用。本文探讨了 PMI 在词共现分析、语义关系提取和情感分析等任务中的具体应用,并提出了几种优化方法,以提高其在大规模数据集上的计算效率和准确性。通过实验验证,这些优化策略显著提升了模型的性能。 ... [详细]
  • 本文作为《Java学习笔记》的开篇,旨在为初学者提供一个全面的概览。文章首先介绍了Java的基本概念及其在编程语言中的地位,强调了Java与其他主流编程语言的共通之处,特别是其核心结构,如控制语句的重要性。通过详细的目录和前言,读者可以快速了解Java的基础知识和学习路径。此外,文章还探讨了控制语句在编程中的关键作用,为后续深入学习打下坚实基础。 ... [详细]
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • 本次发布的Qt音乐播放器2.0版本在用户界面方面进行了细致优化,提升了整体的视觉效果和用户体验。尽管核心功能与1.0版本保持一致,但界面的改进使得操作更加直观便捷,为用户带来了更为流畅的使用体验。此外,我们还对部分细节进行了微调,以确保软件的稳定性和性能得到进一步提升。 ... [详细]
  • 浅析Java泛型及其应用
    Java泛型是自JDK 5引入的一项重要特性,旨在增强代码的类型安全性和复用性。通过泛型,开发人员可以在编译阶段进行类型检查,有效避免运行时的类型转换错误。本文将探讨Java泛型的基本概念、实现机制及其在实际开发中的应用场景,帮助读者深入理解并灵活运用这一强大工具。 ... [详细]
  • 本文深入探讨了C++中使用 `const` 修饰符的虚函数实例。通过具体的代码示例,详细解释了如何在基类和派生类中定义和实现 `const` 修饰的虚函数。文章首先介绍了 `const` 修饰符在成员函数中的作用,然后通过一个包含基类 `Base` 和派生类 `Test` 的示例,展示了如何正确地声明和重写 `const` 虚函数。此外,还讨论了 `const` 修饰符对函数调用和对象状态的影响,帮助读者更好地理解和应用这一重要特性。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 本研究探讨了数字循环结构的分析与应用,通过以1为中心,使用2至n以及n*n的数字构建循环模式。该结构在时间和空间效率上具有显著优势,适用于多种算法和数据处理场景。实验结果显示,该方法在多项测试中表现出色,具有较高的实用价值。 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • 深入解析 UIImageView 与 UIImage 的关键细节与应用技巧
    本文深入探讨了 UIImageView 和 UIImage 的核心特性及应用技巧。首先,详细介绍了如何在 UIImageView 中实现动画效果,包括创建和配置 UIImageView 实例的具体步骤。此外,还探讨了 UIImage 的加载方式及其对性能的影响,提供了优化图像显示和内存管理的有效方法。通过实例代码和实际应用场景,帮助开发者更好地理解和掌握这两个重要类的使用技巧。 ... [详细]
author-avatar
念中怡名哲盈_452
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有