遞歸方法的概念
創新互聯服務項目包括西峽網站建設、西峽網站制作、西峽網頁制作以及西峽網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,西峽網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到西峽省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
類方法成員間允許相互調用,也可以自己調用自己。類的方法如果在方法體內直接或間接地自己調用自己就稱為遞歸方法。
遞歸基本思想就是“自己調用自己”。遞歸方法實際上體現了“依此類推”、“用同樣的步驟重復”這樣的思想,它可以用簡單的程序來解決某些復雜的計算問題。
遞歸調用在完成階乘運算、級數運算、冪指數運算等方面特別有效。
在執行遞歸操作時,C#語言把遞歸過程中的信息保存在堆棧中。如果無限循環地遞歸,或者遞歸次數太多,則產生“堆棧溢出”錯誤
例:用遞歸方法求階乘。利用的數學公式為n!=n*(n-1)!。當n=0時,n!=1。
代碼如下:
public long F(int n)
{
if (n==1)
return 1;
else
return n*F(n-1);
}
遞歸:就是自己調自己,但是沒終止條件會死循環,所以你的遞歸代碼里有結束自調自的條件,這樣就創造了有限次的循環(代碼中你看不到for或foreach但是有循環發生)
所謂遞歸,說的簡單點,就是函數自己調用自己,然后在某個特定條件下。結束這種自我調用。
如果不給予這個結束條件,就成了無限死循環了。這樣這個遞歸也就毫無意義了。
如下面問題
1 1 2 3 5 8 13 21 ........n
分析可以看出, i 表示第幾個數, n 表示該數的值
當i = 1 時, n = 1;
當i = 2 時, n = 1;
當i = 3 時 n = i1 + i2;
當i = 4 時 n = i2 + i3
所以可以寫個函數
int fun(int n) // 這里的n代表第幾個數
{
if(1 == n || 2 == n) // 第一個數
{
return 1;
}
else
{
return fun(n - 1) + fun(n - 2); // 這里就是自己調用自己,形成循環自我調用。
}
}
注: 以上代碼只是用來演示遞歸,不包含錯誤校驗。
在實際生產過程中。該代碼不夠健壯。
如此,就完成了遞歸。你就可以求得第n個數了。
何時考慮使用遞歸。
當你分析一個問題的時候,發現這個問題,是一個自我循環時,而且這個自我循環到一個給定值,就可以終止的時候,你就快要考慮遞歸了。
簡單來說就是一個函數調用到了自己,就可以稱為遞歸.下面是簡單的求n!的例子:
#includestdio.h
#includestring.h
int fac(int n)
{
if(n==0)return 1;
return n*fac(n-1);
}
void main()
{
printf("%d\n",fac(6));
}
當前標題:什么叫c語言函數遞歸 c語言函數遞歸
文章出自:http://m.newbst.com/article16/hjpogg.html
成都網站建設公司_創新互聯,為您提供網站排名、動態網站、虛擬主機、ChatGPT、定制網站、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯