【學習筆記】【C語言】遞迴,學習筆記遞迴

來源:互聯網
上載者:User

【學習筆記】【C語言】遞迴,學習筆記遞迴

一、基本內容:
C語言中的函數可以遞迴調用,即:可以直接(簡單遞迴)或間接(間接遞迴)地自己調自己。
要點:
1、C語言函數可以遞迴調用。
2、可以通過直接或間接兩種方式調用。目前只討論直接遞迴調用。

二、遞迴條件
採用遞迴方法來解決問題,必須符合以下三個條件:
1、可以把要解決的問題轉化為一個新問題,而這個新的問題的解決方案仍與原來的解決方案相同,只是所處理的對象有規律地遞增或遞減。
說明:解決問題的方法相同,調用函數的參數每次不同(有規律的遞增或遞減),如果沒有規律也就不能適用遞迴調用。
2、可以應用這個轉化過程使問題得到解決。
說明:使用其他的辦法比較麻煩或很難解決,而使用遞迴的方法可以很好地解決問題。
3、必定要有一個明確的結束遞迴的條件。
說明:一定要能夠在適當的地方結束遞迴調用。不然可能導致系統崩潰。

三、代碼

 1 /* 2 設計一個函數,用來計算b的n次方 3   4  遞迴的2個條件: 5  1.函數自己調用自己 6  2.必須有個明確的傳回值 7 */ 8 #include <stdio.h> 9 int pow2(int b, int n);10 11 int main()12 {13     int c = pow2(3, 2);14     15     printf("%d\n", c);16     return 0;17 }18 19 /*20  pow2(b, 0) == 121  pow2(b, 1) == b == pow2(b, 0) * b22  pow2(b, 2) == b*b == pow2(b, 1) * b23  pow2(b, 3) == b*b*b == pow2(b, 2) * b24  25  1> n為0,結果肯定是126  2> n>0,pow2(b, n) == pow2(b, n-1) * b27  */28 29 int pow2(int b, int n)30 {31     if (n <= 0) return 1;32     return pow2(b, n-1) * b;33 }34 35 /*36 int pow2(int b, int n)37 {38     // 用來儲存計算結果39     int result = 1;40     41     42     //result *= b;43     //result *= b;44     //result *= b;45     //result *= b;46     //....47     48     //n次49 50     51     for (int i = 0; i<n; i++)52     {53         result *= b;54     }55     56     return result;57 }*/

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.