成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

手把手教你如何使用C語言函數(shù)遞歸

C語言是一種廣泛應(yīng)用于計(jì)算機(jī)編程的靜態(tài)數(shù)據(jù)類型檢查、支持多范型的通用程序設(shè)計(jì)語言。它可以支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象化、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)以及基于原則設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。在系統(tǒng)開發(fā)、引

C語言是一種廣泛應(yīng)用于計(jì)算機(jī)編程的靜態(tài)數(shù)據(jù)類型檢查、支持多范型的通用程序設(shè)計(jì)語言。它可以支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象化、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)以及基于原則設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。在系統(tǒng)開發(fā)、引擎開發(fā)等應(yīng)用領(lǐng)域中,C語言是常用的編程語言之一,深受廣大程序員的喜愛。

C語言數(shù)學(xué)庫中的常見函數(shù)

C語言數(shù)學(xué)庫提供了許多常用的數(shù)學(xué)函數(shù),包括計(jì)算絕對值、取整、冪運(yùn)算、三角函數(shù)等。下面將手把手教你如何使用幾個(gè)常見的函數(shù)。

1. 鼠標(biāo)雙擊或右擊打開桌面上的Dev-C 軟件,讓其運(yùn)行起來。Dev-C 是一個(gè)非常適合初學(xué)者使用的C/C 集成開發(fā)環(huán)境(IDE),它在Windows窗口運(yùn)行環(huán)境下工作。這款軟件遵守GPL許可協(xié)議分發(fā)源代碼,集成了MinGW中的GCC編譯器、GDB調(diào)試器和AStyle格式整理器等自由軟件,具有強(qiáng)大的功能和清晰的界面分類。

2. 點(diǎn)擊文件菜單,選擇新建源代碼。這時(shí)新建的代碼文本還沒有命名,是一個(gè)空文件。通過界面左上角的文件選項(xiàng),選擇另存為,將文件保存在電腦的任意位置。為了方便下次查找,可以將文件保存在桌面上或其他易于找到的地方。

什么是遞歸?

遞歸是指某個(gè)函數(shù)直接或間接地調(diào)用自身,將原問題的求解過程劃分成許多相同性質(zhì)的子問題的求解。小問題的求解很容易得到,而這些子問題的解構(gòu)成了原問題的解。遞歸的總體思想是,將待求解問題的解看作輸入變量x的函數(shù)f(x),通過尋找函數(shù)g,使得f(x) g(f(x-1)),并已知f(0)的值,就可以通過f(0)和g求出f(x)的值。遞歸也可以應(yīng)用于多個(gè)輸入變量x、y、z等,只需要朝著出口的方向推進(jìn)即可。

遞歸的特點(diǎn)

遞歸具有以下幾個(gè)特點(diǎn):

1. 遞歸式:確定如何將原問題劃分成子問題。

2. 遞歸出口:遞歸終止的條件,即最小子問題的求解??梢栽试S存在多個(gè)出口。

3. 界函數(shù):問題規(guī)模變化的函數(shù),保證遞歸的規(guī)模向出口條件靠攏。

利用遞歸解決常見問題

下面通過兩個(gè)例題,介紹如何使用遞歸思想解決實(shí)際問題。

例1:菲波那契數(shù)列。輸入一個(gè)整數(shù)n,求菲波那契數(shù)列的第n項(xiàng)。

算法:設(shè)第n項(xiàng)值為f(n),則f(n) f(n-1) f(n-2)。已知f(1)1,f(2)1,從第3項(xiàng)開始可以使用公式求解。

程序:

```c

int f(int n){

if(n1 || n2)

return 1;

else

return f(n-1) f(n-2);

}

```

例2:放蘋果。輸入m個(gè)蘋果和n個(gè)盤子,問有多少種不同的放法。

算法:設(shè)f(m,n)為m個(gè)蘋果,n個(gè)盤子的放法數(shù)目。先對n作討論:

- 當(dāng)n>m時(shí),必定有n-m個(gè)盤子永遠(yuǎn)空著,對擺放蘋果的方法數(shù)目不產(chǎn)生影響。即如果n>m,f(m,n) f(m,m)。

- 當(dāng)n

1. 有至少一個(gè)盤子空著,相當(dāng)于f(m,n) f(m,n-1);

2. 所有盤子都有蘋果,相當(dāng)于可以從每個(gè)盤子中拿掉一個(gè)蘋果,不影響放法的數(shù)目,即f(m,n) f(m-n,n)。而總的放蘋果的放法數(shù)目等于這兩者之和,即f(m,n) f(m,n-1) f(m-n,n)。

程序:

```c

int f(int m, int n){

if(n1 || m0)

return 1;

if(n>m)

return f(m,m);

else

return f(m,n-1) f(m-n,n);

}

```

這些遞歸函數(shù)的出口條件說明如下:

- 當(dāng)n1時(shí),所有蘋果必須放在一個(gè)盤子里,返回1;

- 當(dāng)沒有蘋果可放時(shí),定義為1種放法;

- 遞歸的兩條路,第一條是n逐漸減少,最終到達(dá)出口條件n1;第二條是m逐漸減少,當(dāng)n>m時(shí),返回f(m,m)到達(dá)出口條件m0。

標(biāo)簽: