什麼是遞迴函式?怎樣實現遞迴,遞迴函式F n 的遞迴演算法是什麼

時間 2021-10-14 22:24:14

1樓:假面

遞迴就是一個函式在它的函式體內呼叫它自身。執行遞迴函式將反覆呼叫其自身,每呼叫一次就進入新的一層。遞迴函式必須有結束條件。

當函式在一直遞推,直到遇到牆後返回,這個牆就是結束條件。

所以遞迴要有兩個要素,結束條件與遞推關係。

遞迴有兩個基本要素:

(1)邊界條件:確定遞迴到何時終止,也稱為遞迴出口。

(2)遞迴模式:大問題是如何分解為小問題的,也稱為遞迴體。遞迴函式只有具備了這兩個要素,才能在有限次計算後得出結果

在遞迴函式中,呼叫函式和被呼叫函式是同一個函式,需要注意的是遞迴函式的呼叫層次,如果把呼叫遞迴函式的主函式稱為第0層,進入函式後,首次遞迴呼叫自身稱為第1層呼叫;從第i層遞迴呼叫自身稱為第i+1層。反之,退出第i+1層呼叫應該返回第i層。

一個遞迴函式的呼叫過程類似於多個函式的巢狀的呼叫,只不過呼叫函式和被呼叫函式是同一個函式。為了保證遞迴函式的正確執行,系統需設立一個工作棧。具體地說,遞迴呼叫的內部執行過程如下:

(1)運動開始時,首先為遞迴呼叫建立一個工作棧,其結構包括值參、區域性變數和返回地址;

(2)每次執行遞迴呼叫之前,把遞迴函式的值參和區域性變數的當前值以及呼叫後的返回地址壓棧;

(3)每次遞迴呼叫結束後,將棧頂元

2樓:麥香甜甜圈

比方說有一個函式叫max,它有兩個引數,它的功能是求兩個引數中較大的那個數。

例如:a=2,b=4, 則max(a,b)的值是4.

若現在有四個數a,b,c,d,利用max函式求出其中最大的數,怎麼寫呢?顯然有很多方法,像是:max(max(a,b),max(c,d))

max(max(max(a,b),c),d)不知道這個例子能否幫助你理解“遞迴”?

3樓:痕水月

遞迴函式的就是從一個作業的,然後歸到一個男生,然後實現遞迴需要一些特殊條件。

遞迴函式f(n)的遞迴演算法是什麼?

4樓:匿名使用者

你先了解這個函式的作用,結果就是 n*(n/(2^1)*(n/(2^2))*(n/(2^3))*(n/(2^4))……*1

n*(n/2)*(n/4)*(n/8)*……*1while( n >= 0)

else

}double result = 1;

while(棧不為空)

printf("%lf",result);

這個是偽**哈,自己去實現

什麼是函式的遞迴呼叫?正確的函式遞迴條件是什麼?並寫一個簡短的c語言遞迴函式,舉例說明

5樓:匿名使用者

一個函式呼叫它自己, 就叫做遞迴, 遞迴要有終止的條件, 就是一定有一個能執行到的條件使得函式返回一個具體值. 例子樓上兩位舉得很好了.

6樓:匿名使用者

遞迴就是函式自己呼叫自己的函式。

其實遞迴函式的呼叫和其他一般函式呼叫沒有什麼區別,只是在形式上能夠建立迴圈的邏輯呼叫。

遞迴函式一定有個基本要求,就是肯定會滿足某種條件,不再呼叫自身。(否則就無限遞迴,直到記憶體溢位)。

例如,我們計算1到100的所有數相加。

int addrecursion(int curtotle, int a)

呼叫: int result = addrecursion(0,100);

result 的結果就是1到100所有數的總數。

7樓:匿名使用者

樓上正確. 不過換個寫法可能更能體現遞迴的思想#include

int addrecursion(int a)void main()

C 函式遞迴問題,C 用函式遞迴求1 2 到n的問題

const int len 66 const int divs 6 void subdivide char ar,int low,int high,int level int tmain int argc,tchar ar return 0 將陣列ar子分,並在子分構成中不斷在子分的子串中間賦值為 ...

c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

問明 舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf...

C語言遞迴練習? 20,C語言什麼是遞迴

第一題 有5個人坐在一起,問第5個人多少歲?他說比第4個人大兩歲。問第4個人歲數,他說比第3個人大兩歲。問第3個人,又說比第2個人大兩歲。問第2個人,說比第1個人大兩歲。最後問第1個人,他說是10歲。請問第5個人多大?int f int n void main 第二題 用遞迴法求n的階乘。int f...