遞迴演算法的一些規則

2022-02-20 10:21:22 字數 869 閱讀 8693

遞迴的通用規則:

1 每一次函式呼叫都會有一次返回.當程式流執行到某一級遞迴的結尾處時,它會轉移到前一級遞迴繼續執行。

2 遞迴函式中,位於遞迴呼叫前的語句和被調函式具有相同的順序。如列印語句 #1 位於遞迴呼叫語句前,它按照遞迴呼叫的順序被執行了 4 次。

3 每一級的函式呼叫都有自己的私有變數。

4 遞迴函式中,位於遞迴呼叫語句後的語句的執行順序和各個被呼叫函式的順序相反。

5 雖然每一級遞迴有自己的變數,但是函式**並不會得到複製。

6 遞迴函式中必須包含可以終止遞迴呼叫的語句。

4 5     // used for recursion invoke example

6     private static void up_and_down(int n)

11         system.out.println("after ==== level " + n + ": location " + system.identityhashcode(n));

12     }

執行結果如下:

level 1: location 2055496604

level 2: location 886982024

level 3: location 1822883541

level 4: location 1201965485

after ==== level 4: location 1201965485

after ==== level 3: location 1822883541

after ==== level 2: location 886982024

after ==== level 1: location 2055496604

eslint 的一些規則

parenthese 圓括號 curly brace 花括號 comma 逗號 semicolon 分號 函式體中沒有花括號引數就不要有圓括號 物件中值必須要用單引號 定義但是沒有被使用,一般是可以被刪除的。有一種情況就是屬性驗證。proptypes沒有被使用,但是需要自己寫屬性驗證,所以就會被用上...

正則的一些規則

錨字元 邊界字元 行首匹配,和在裡的 不是乙個意思 行尾匹配 a 匹配字串開始,它和 的區別是,a只匹配整個字串的開頭,即使在re.m模式下也不會匹配它行的行首 z 匹配字串結束,它和 的區別是,z只匹配整個字串的結束,即使在re.m模式下也不會匹配它行的行尾 b 匹配乙個單詞的邊界,也就是值單詞和...

Makefile一些規則

一 makefile 的規則 在講述這個 makefile 之前,還是讓我們先來粗略地看一看makefile 的規則。target prerequisites command target也就是乙個目標檔案,可以是object file,也可以是執行檔案。還可以是乙個標 籤 label 對於標籤這種...