Home >Backend Development >PHP Tutorial >数据结构与算法之递推算法 C++与PHP实现

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

WBOY
WBOYOriginal
2016-06-23 13:46:261126browse

数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。一种数据结构如果脱离了算法,也就没有存在的价值了。

算法的作用----解决任何一个实际问题,都不可避免地涉及到算法的问题,通过一定的算法,得到一个最优(或较优)的方案。

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

顺推法:从已知条件出发,逐步推算出要解决的问题的方法。

逆推法:从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程。

顺推实例:

兔子繁殖过程


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 for j="0;" cout return>  <p class="sycode">   php代码:  </p>  <pre name="code" class="sycode"><?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   <br>  <p class="sycode">   php代码:  </p>  <pre name="code" class="sycode"><?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++编译运行结果



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn