遞推演算法例題

2021-07-15 06:15:31 字數 965 閱讀 7373

例1

植樹節那天,有五位同學參加了植樹活動,他們完成植樹的棵樹都不相同,問第一位同學植了多少棵樹時,他指著旁邊的第二位同學說比他多植了兩棵;追問第二位同學他又說比第三位同學多植了兩棵,如此追問,都說比另一位同學多植兩棵。最後問道第五位同學時,他說自己種了10棵,問第一位同學植了多少棵?

【分析】設第一位同學植樹的棵樹為a1,欲求a1,需要從第五位同學植樹的棵樹a5入手,根據「多兩棵」這個規律,按照一定順序逐步進行推算。

a5=10;

a4=a5+2=12;

a3=a4+2=14;

a2=a3+2=16;

a1=a2+2=18;

源**:

#include

#include

using

namespace

std;

int main()

printf("%d\n",a);

system("pause");

return

0;}

例2

滿足f1=f2=1,fn=fn-1+fn-2的數列我們叫做斐波那契數列,(fibonacci)它的前若干項是:1,1,2,3,5,8,13,21,34…求此數列的第n項。

源**:

#include

#include

using

namespace

std;

int f0=1,f1=1,f2,n;

int main()

printf("%d\n",f2);

system("pause");

return

0;}

總結:遞推演算法以初始「起點」值為基礎,用相同的運算規律,逐次重複運算,直至運算結束,這種從「起點」重複相同的方法直至到達一定「邊界」,猶如單向運動,可以用迴圈實現,遞推的本質時按規律逐次推出(計算)下一步的結果。

演算法設計與分析 遞推演算法及例題

遞推演算法 演算法特點是 乙個問題的求解需一系列的計算,在已知條件和所求問題之間總存在著某種相互聯絡的關係,在計算時,如果可以找到前後過程之間的數量關係 即遞推式 那麼,從問題出發逐步推到已知條件,此種方法叫逆推。數字三角形 如上圖所示為乙個數字三角形。請編乙個程式計算從頂到底的某處的一條路徑,使該...

遞推演算法二

b align center size medium 遞推演算法二 冪積數列 size align b size medium b 冪積數列 b m 輸入整數n,m求小於n的按從小到大的第m個元素 分析 list b 窮盡法 b 從2開始到n,如果n 2 0,n n 2一直迴圈的直到不能除盡 n 3...

遞推演算法(初學)

遞推演算法 乙個問題的求解需一系列 類似重複 的計算,在已知條件和所求問題之間總存在著某種相互聯絡的關係。通過已知條件,利用特定關係得出中間推論,直至得到結果的演算法。在解決問題的時候,去尋找前後過程之間的數學關係 即遞推式 遞推演算法避開了求項公式的麻煩,把乙個複雜的問題的求解,分解成了連續的若干...