一、什麼叫做遞迴?
乙個過程或
函式在其定義或說明中有直接或間接呼叫自身的一種方法;
遞迴函式就是直接或間接呼叫自身的函式,也就是自身呼叫自己;
二、一般什麼時候使用遞迴?
遞迴時常用的程式設計技術,其基本思想就是「自己呼叫自己」,乙個使用遞迴技術的方法即是直接或間接的呼叫自身的方法。遞迴方法實際上體現了「以此類推」、「用同樣的步驟重複」這樣的思想,它可以用簡單的程式來解決某些複雜的計算問題,但是運算量較大。
還有些資料結構如二叉樹,結構本身固有遞迴特性;此外,有一類問題,其本身沒有明顯的遞迴結構,但用遞迴程式求解比其他方法更容易編寫程式,如八皇后問題、漢諾塔問題等。
正因為遞迴程式的普遍性,我們應該學會使用遞迴來求解問題。直接遞迴程式與間接遞迴中都要實現當前層呼叫下一層時的引數傳遞,並取得下一層所返回的結果,並向上一層呼叫返回當前層的結果。至於各層呼叫中現場的儲存與恢復,均由程式自動實現,不需要人工干預。因此,在遞迴程式的設計中關鍵是找出呼叫所需要的引數、返回的結果及遞迴呼叫結束的條件。
如在階乘函式fact(n)中,各層要求傳遞乙個自然數n,返回n* fact(n-1),遞迴呼叫結束的條件是n=0;據此,可以方便地寫出它的對應程式
三、利用遞迴實現1到100以內的求和
#includeusing namespace std;
int sum(int max);
int main()
else
}
執行結果:5050
一 求100以內的素數
我們通過變數i來表示1到100的任意乙個數,那麼判斷i是不是素數即可。素數就是除去1和它自身沒有其它的因數的數。可以通過兩層迴圈來判斷i是不是素數。package basedatatype author administrator 求100以內的素數 public class variate if ...
篩選法求100以內的素數
step1 初始化乙個a陣列,從a 2 到a 100 以內都為自己。step2 對每個數,如果可以被2,3,5,7,11,13.素數 整除則該數設為0,因為素數的倍數是可以被除1和本身以外的其它數整除,是合數 step3 列印出所有非0的數,即為素數。改自愛課程 c語言程式設計 蘇小紅老師 incl...
GO語言求100以內的素數
思路 找出乙個非素數就把它挖掉,最後剩下就是素數。下面就來欣賞一下go簡潔的 吧 目前不支援go的 插入,使用xml的代替一下。複製 如下 package main import fmt math func main a 1 0 for i 2 i int math.sqrt 100 i fmt.p...