《C Primer Plus》讀書筆記 遞迴

2021-09-21 03:22:42 字數 974 閱讀 7593

乙個函式呼叫其本身,此呼叫過程為遞迴(recursion)。

舉個栗子:

/*用來測試upanddown函式的驅動程式*/

#include

void upanddown (int);

int main(void)

void upanddown (int n)

輸出如下:

最簡單的遞迴形式。

把遞迴呼叫語句放在函式結尾(return語句之前)。

舉個栗子:

計算n的階乘

long fact (int n) // 使用迴圈計算階乘,佔記憶體少,執行快

long ***ct (int n) // 使用遞迴計算階乘,僅作尾遞迴展示、入門

{ long ans;

if(n > 0)

ans = n * ***ct(n-1);

else

ans = 1; //1.零的階乘;2.結束遞迴。

return ans;

將乙個整數轉換成二進位制形式。

void tobinary (unsigned

long n) // 簡單須存陣列版遞迴

優點

演算法簡單

缺點佔記憶體,難於閱讀和維護

舉個栗子:斐波那契數列:第

一、二個數字都是1,而後續的每個數字是其前兩個數字之和。1、1、2、3、5、8、13……

long fibonacci (int n)

雙重遞迴。

致命弱點:每級呼叫變數數以指數遞增!

main( )也可以被自身遞迴呼叫或其他函式呼叫,儘管用得少。

c primer plus 讀書筆記1

c是一種融合了控制特性的語言,是一種快速 高效 緊湊 可移植性的語言。使用c語言的7個步驟 定義程式目標 設計程式 編寫 編譯程式 執行程式 測試和除錯程式 維護和修改程式。c程式是由乙個或多個函式組成,乙個c程式必須包含乙個main 函式 函式前面必須有乙個資料型別不能使用void 每個c語句都是...

C primer plus 讀書筆記 1

1.c的可移植性很高,在乙個系統上編寫的c程式稍作修改或不經修改就可以在其他系統上執行。2.程式設計的步驟 1 定義程式的目標 2 設計程式 程式如何完成目標,使用者介面如何,程式怎樣組織和執行,如何表達和處理資料,考慮魯棒性 例如使用者輸入失誤怎樣處理 邊界的處理.3 編寫 可以在文件txt編寫,...

C primer plus 讀書筆記(3)

1.系統預設將非整數儲存為double型,所以在計算時會出現將double型轉為float型的警告。2.f float型和double型 d int型 o 八進位制整數型 o 加上 號會有字首0 x 十六進製制整數型 x 加上 號會有字首0x u unsigned int ld long int l...