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

時間 2023-06-01 21:21:07

1樓:岔路程式緣

第一題:有5個人坐在一起,問第5個人多少歲?他說比第4個人大兩歲。

問第4個人歲數,他說比第3個人大兩歲。問第3個人,又說比第2個人大兩歲。問第2個人,說比第1個人大兩歲。

最後問第1個人, 他說是10歲。請問第5個人多大?

int f(int n)

void main()

第二題:用遞迴法求n的階乘。

int f(int n)

void main()

第三題:設計一個函式用來計算b的n次方。

int f(int b,int n)

void main()

c語言什麼是遞迴

2樓:

遞迴方法的概念。

類方法成員間允許相互呼叫,也可以自己呼叫自己。類的方法如果在方法體內直接或間接地自己呼叫自己就稱為遞迴方法。

遞迴基本思想就是「自己呼叫自己」。遞迴方法實際上體現了「依此類推」、「用同樣的步驟重複」這樣的思想,它可以用簡單的程式來解決某些複雜的計算問題。

遞迴呼叫在完成階乘運算、級數運算、冪指數運算等方面特別有效。

在執行遞迴操作時,c#語言把遞迴過程中的資訊儲存在堆疊中。如果無限迴圈地遞迴,或者遞迴次數太多,則產生「堆疊溢位」錯誤。

例:用遞迴方法求階乘。利用的數學公式為n!=n*(n-1)!。當n=0時,n!=1。

**如下:public long f(int n)

c語言遞迴問題

3樓:萌寵奇趣秀

我們先來了解下什麼是遞迴:

遞迴的定義:直接或間接呼叫自己的函式成為遞迴函式(recursionfunction)。在求解某些具有隨意性的複雜問題時經常使用遞迴,例如求解階乘或者兩個數的最大公約數等。

因為這時解的具體「大小」不受限制,函式可以一直遞迴呼叫,直到問題解決。

遞迴的要求:遞迴函式必須定義一個終止條件;否則,函式就會「永遠」遞迴下去,這意味著函式會一直呼叫自身直到程式棧耗盡,這種「永遠」遞迴下去的現象叫做「無限遞迴錯誤」(infiniterecursion error)。

遞迴的特點:

1、在函式f()中,會對函式f()自己進行呼叫。

2、無限遞迴實際上是不允許的;遞迴函式必須定義一個終止條件,即什麼情況下終止遞迴,終止繼續呼叫自己,如果沒有終止條件,那麼函式將一直呼叫自己,知道程式棧耗盡,這時候等於是寫了一個bug!

3、 遞迴演算法解題通常**比較簡潔,但不是很容易讀懂。

4、 遞迴的呼叫需要建立大量的函式的副本,尤其是函式的引數,每一層遞迴呼叫時引數都是單獨的佔據記憶體空間,他們的地址是不同的,因此遞迴會消耗大量的時間和記憶體。而非遞迴函式雖然效率高,但相對比較難程式設計。

5、 遞迴函式分為呼叫和回退階段,遞迴的回退順序是它呼叫順序的逆序。

如果以上對你有幫助,青採納一下, 謝謝。

c語言函式遞迴題

4樓:網友

if(k>0)fun(k-1);

printf("%d",k);

可以看到遞迴的結束條件是k<=0,更準確點說k=0時,就不再遞迴了,所以首先輸出的是0,然後返回到上一個函式,輸出1,依次類推。最後輸出的結果是012345。選b

一道數學題如何通過c語言的遞迴函式實現,求大佬指點迷津

5樓:細雨在微笑

此題邏輯還是有一點複雜的,分析、實現**及輸出 見下圖。

6樓:

這個就是菲波列切問題,有兩個數都為 1,1,然後從第三個數字開始 當前的值為前兩個數字的和,1, 1, 2, 3, 5, 8, 13,..

什麼情況下要用到遞迴演算法?c語言中的

7樓:尼瑪

在一個子程式(過程或函式)的定義中又直接或間接地呼叫該子程式本身,稱為遞迴。

遞迴是一種非常有用的程式設計方法。用遞迴演算法編寫的程式結構清晰,具有很好的可讀性。

遞迴演算法的基本思想是:把規模大的、較難解決的問題變成規模較小的、易解決的同一問題。規模較小的問題又變成規模更小的問題,並且小到一定程度可以直接得出它的解,從而得到原來問題的解。

利用遞迴演算法解題,首先要對問題的以下三個方面進行分析:

把這些步驟或等式確定下來。 把以上三個方面分析好之後,就可以在子程式中定義遞迴呼叫。記得c裡面有一個漢諾塔,就是非用遞迴才能解決的一個問題!可以仔細理解一下哦!

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語言遞迴呼叫的題目,急急急,c語言遞迴呼叫的題目,急急急

根據題意是 fun 0 1 fun 1 1 fun n fun n 1 fun n 2 就是斐波那契數列 n 0 1 2 3 4 5 6 x 1 1 2 3 5 8 13 liuxing167756 所說是正解 本質就是計算斐波那契數列 fun 這個無返回值函式需要依靠 f1 f2 兩區域性變數用來...

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

辜亭晚示未 n的階乘,就是從1開始乘到n,即1 2 3 n 1 n。即n 1 2 3 n 1 n。而 n 1 1 2 3 n 1 所以可以得出,n n 1 n。由這個概念,可以得出遞迴求階乘函式fact的演算法 1如果傳入引數為0或1,返回1 2對於任意的n,返回n fact n 1 如下 int ...