数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这样的算法的数据结构。一种数据结构假设脱离了算法,也就没有存在的价值了。
算法的作用----解决不论什么一个实际问题,都不可避免地涉及到算法的问题,通过一定的算法,得到一个最优(或较优)的方案。

递推算法:递推算法是一种简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。

顺推法:从已知条件出发,逐步推算出要解决的问题的方法。
逆推法:从已知问题的结果出发,用迭代表达式逐步推算出问题的開始的条件,即顺推法的逆过程。
顺推实例:
兔子生殖过程
c++代码:
#include<iostream>
int main()
{using namespace std;const int NUM = 13;int count = 0;int rabbit[NUM] = {1,1};for (int i=0; i<NUM-2; i++){rabbit[i+2] = rabbit[i] + rabbit[i+1];}for (int j=0; j<NUM; j++){cout << j << "月兔子总数: " << rabbit[j] << "仅仅\n";}return 0;
}
php代码:
<?php$rabbit = array();$rabbit[1] = $rabbit[0] =1;define("MONTH", 12);for ($i=2; $i<=MONTH; $i++) {$rabbit[$i] = $rabbit[$i-2] + $rabbit[$i-1];}for ($i=0; $i<=MONTH; $i++) {echo "第 " . $i . " 月,兔子总数量为:". $rabbit[$i] . "仅仅<br/>";}
?>
C++编译执行结果
逆推实例:

父亲准备为小龙的四年大学生活一次性储蓄一笔钱,使用整存零取的方式,控制小龙每月月底取1000元准备下月使用。如果银行整存领取的年息为1.71%,请算出父亲至少须要存入多少钱才行。

c++代码:
#include<iostream>
int main()
{using namespace std;const double RATE = 0.0171;double money[48];money[47] = 1000;for (int i=47; i>0; i--){money[i-1] = (money[i] + 1000)/(1+RATE/12);}for (int j=47; j>0; j--){cout << "第 " << j << " 月本利合计为: " << money[j] << " 元\n";}return 0;
}
php代码:
<?php$month = array();$month[47] = 1000;define("RATE", 0.0171);for ($i=47; $i>0; $i--) {$month[$i-1] = ($month[$i] + 1000)/(1+RATE/12);}for ($i=47; $i>0; $i--) {echo "第 " . $i . " 月本息合计为:" . $month[$i] . "元<br />";}
?>
C++编译执行结果

转载于:https://www.cnblogs.com/mengfanrong/p/4260495.html

数据结构与算法之递推算法 C++与PHP实现相关推荐

  1. java穷举密码_穷举算法和递推算法(Java)

    穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况.穷举算法效率不高,但是适合一些没有明显规律可循的场合. 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范 ...

  2. 扩展欧几里得算法_扩展欧几里得递推算法

    欧几里得算法 表示 整数 a 与 b 的最大公约数. 若 t = a % b, 则 证明略. 递推版 gcd 算法 gcd 接受变量元组 (a, b) 作为输入,输出最大公约数 (r). 我们很难直接 ...

  3. 基础算法 —— 递推算法

    [概述] 递推算法:通过已知条件,利用相邻的数据项间的关系(即:递推关系),得出中间推论,直至得到结果的算法. 递推关系:给定一个数的序列H0,H1,-,Hn,若存在整数N0,使当n>N0时,可 ...

  4. 2022蓝桥杯B组—积木画——递推算法

    积木画 题目描述 小明最近迷上了积木画,有这么两种类型的积木,分别为 III 型(大小为 222 个单位面积)和 LLL 型(大小为 333 个单位面积): 同时,小明有一块面积大小为 2×N2×N2 ...

  5. 算法设计与分析第一章递推算法

    算法设计与分析 第一章 递推算法 1.概述 在**已知条件**和**所求问题**之间总存在着某种相互联系的关系,如果可以找到前后过程之间的数量关系(即递推式),那么,从**问题出发逐步推到已知条件** ...

  6. 算法竞赛宝典-递推算法

    算法竞赛宝典-递推算法 Problem A [递推]挖地雷 待更新 问题 B: [递推]偶数3的个数 时间限制: 1 Sec 内存限制: 64 MB 题目描述 "报告,我军已探出地雷阵中所有 ...

  7. 程序设计典型算法之递推法

    程序设计典型算法之递推法 一时兴起,刚吃完晚饭,突然又想写点东西,可能太久没有写东西了吧! 问题:小猴吃桃问题.小猴在一天内摘了若干桃子,当天吃掉一半多一个:第二天吃掉剩下的一半桃子多一个:以后每天都 ...

  8. 【YBT高效进阶】1基础算法/1逆推算法/2奇怪汉诺塔

    [YBT高效进阶]1基础算法/1逆推算法/2奇怪汉诺塔 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 汉诺塔问题,条件如下: 这里有 ...

  9. 数据结构与算法之倒推算法

    数据结构与算法之倒推算法 倒推算法概念 所谓的倒推法(Inverted Recursion)是对某些特殊问题所采用的违反通常习惯的,从后向前推解问题的方法. 在不知前提条件的情况下,经过从后向前递推, ...

  10. 算法学习——递推之猴子爬山

    算法描述 一个猴子沿着一座山的n级台阶向上爬,猴子上山一步可跳1级或3级,试求上山的n级台阶有多少种不同的爬法 算法思路 利用递推的思想,猴子在第n级台阶上,它之前可能在第n-1级台阶上或者是在n-3 ...

最新文章

  1. [ASP.NET]状态管理[摘自C#入门经典]
  2. 二维几何变换---OpenGL几何变换编程示例
  3. Wannafly挑战赛10F-小H和遗迹【Trie,树状数组】
  4. PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法
  5. Openshift 4.4 静态 IP 离线安装系列:准备离线资源
  6. 悉数11种主流NoSQL文档型数据库
  7. 转 Phpstorm调试详解(包含命令行以及浏览器)
  8. matlab 怎么使用function,Matlab怎么调用函数 自定义函数使用方法
  9. Java学习:多线程
  10. vlan绑定_【实操】多VLAN间通信
  11. HTML5项目实战之旅行社网站——移动端流体布局
  12. 文安三中电子计算机老师叫什么,顶岗实习周记:记我的第一次.doc
  13. flutter 手机定位
  14. 预训练模型 PLOME
  15. skyeye linux qt,Ubuntu 16.04上安装SkyEye及测试
  16. ecshop附件下载_ecshop商品页面可按会员等级下载附件文档压缩包权限
  17. vue中递归组件实现多级列表
  18. [弱校联萌2016]2016弱校联盟十一专场10.5
  19. mac安装mysql后找不到_Mac安装MySQL步骤及遇到的问题
  20. SqlServer入门学习总结(一)

热门文章

  1. Linux ubuntu基本知识
  2. 计算机上的mrc功能,计算器上的MRC有什么功能?
  3. 数据结构和算法——线性结构(1)数组、栈、队列和单链表
  4. C++ int与string互转换
  5. 熟练的运用计算机英语怎么说,对什么运用的熟练用英语怎么说?
  6. 数组异或交换出现的问题
  7. rz安装 xshell_在Linux系统中安装rzsz工具
  8. js原生继承几种方式
  9. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_4 mybatis中使用unpooled配置连接池的原理分析...
  10. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_5_Lambda表达式的无参数无返回值的...