遞迴真的好難啊!!! 看完之後好多了

2022-08-28 17:18:20 字數 2616 閱讀 8460

在程式中, 所謂的遞迴, 就是函式自己直接或間接的呼叫自己.

直接呼叫自己

間接呼叫自己

就遞迴而言最重要的就是跳出結構. 因為跳出了才可以有結果.

遞迴的呼叫, 寫遞迴函式, 最終還是要轉換為自己這個函式.

假如有乙個函式 f, 如果它是遞迴函式的話, 那麼也就是說 函式體內的問題還是轉換為 f 的形式.

遞迴思想就是將乙個問題轉換為乙個已解決的問題來實現

function f()
例子: 1, 2, 3, 4, 5, ..., 100

首先假定遞迴函式已經寫好, 假設是 foo. 即 foo( 100 ) 就是求 1 到 100 的和

尋找遞推關係. 就是 n 與 n-1, 或 n-2 之間的關係: foo( n ) == n + foo( n - 1 )

var res = foo( 100 );

var res = foo( 99 ) + 100;

將遞推結構轉換為 遞迴體

function foo( n )
* 將 求 100 轉換為 求 99

* 將 求 99 轉換為 求 98

* ...

* 將求 2 轉換為 求 1

* 求 1 結果就是 1

* 即: foo( 1 ) 是 1

將臨界條件加到遞迴體中

function foo( n )
看看我出的練習吧

求 1, 3, 5, 7, 9, ... 第 n 項的結果與前 n 項和. 序號從 0 開始

求第 n 項的

首先假定遞迴函式已經寫好, 假設是 fn. 那麼 第 n 項就是 fn( n )

找遞推關係: fn( n ) == f( n - 1 ) + 2

遞迴體

function fn( n )
找臨界條件

加入臨界條件

function fn( n )
前n項和

假設已完成, sum( n ) 就是前 n 項和

找遞推關係: 前 n 項和 等於 第 n 項 + 前 n-1 項的和

得到遞迴體

function sum( n )
找臨界條件

得到遞迴函式

function sum( n )
2, 4, 6, 8, 10 第 n 項與 前 n 項和

第n項

function fn( n )
前n項和

function sum( n )
數列: 1, 1, 2, 4, 7, 11, 16, … 求 第 n 項, 求前 n 項和.

求第 n 項

假設已經得到結果 fn, fn( 10 ) 就是第 10 項

找遞推關係

遞迴體也就清楚了, 臨界條件是 n == 0 => 1

function fn( n )
如果從 1 開始表示, 那麼第 n 項為

假設已經得到結果 fn, fn( 10 ) 就是第 10 項

找遞推關係

臨界條件 n == 1 => 1

前n項和

function sum( n )
如果從 0 開始

0  1  2  3  4  5   6

1, 1, 2, 4, 7, 11, 16,

如果從 1 開始

1  2  3  4  5  6   7

1, 1, 2, 4, 7, 11, 16,

fibonacci 數列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

求其第 n 項.

遞推關係 fn(n) == fn( n- 1) + fn( n - 2)

function fib( n )
階乘是乙個運算, 乙個數字的階乘表示的是從 1 開始 累乘到這個數字. 例如 3! 表示1 * 2 * 3.

5! 就是1 * 2 * 3 * 4 * 5. 規定 0 沒有階乘, 階乘 從 1 開始.

求 n 的階乘

function foo ( n )
求冪就是求 某乙個數 幾次方

2*2 2 的 平方, 2 的 2 次方

求 n 的 m 次方

最終要得到乙個函式 power( n, m )

n 的 m 次方就是 m 個 n 相乘 即 n 乘以 (m-1) 個 n 相乘

function power ( n, m )

智商不夠,遞迴真難啊

輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2 給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。示例 1 輸入 a 1,2,3 b 3,...

人生好難啊

人生好難啊 一向堅強隱忍的老公也發出了這樣的感慨。本以為裁員浪潮已經過去,心可以稍稍安一些了。但前兩天部門總結大會上,領導提出來要繼續進行人員精簡。所有人都要繼續提高自己的能力,找不准自己定位的,趁早轉崗或者走人。大廠不好待,真的真的不好待。所以我現在很自覺地不再因為一些雞毛蒜皮的小事去煩擾他。確實...

返樸歸真的技術

toc 心得體會 其實嚴格意義上我也不是乙個計算機專業的人,要說的話,就是計算機相關專業,不過最近幾年,對計算機的喜愛就越發強烈了。倒不是因為工作在計算機相關領域,話說其實工作本身就只是用計算機的很淺的功能,對計算機的興趣完全來自於ta的優秀和樸實,還有就是ta給我帶來的一系列挫折。想當初,在學校裡...