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

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

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

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

C語(yǔ)言數(shù)學(xué)庫(kù)中的常見(jiàn)函數(shù)

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

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

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

什么是遞歸?

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

遞歸的特點(diǎn)

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

1. 遞歸式:確定如何將原問(wèn)題劃分成子問(wèn)題。

2. 遞歸出口:遞歸終止的條件,即最小子問(wèn)題的求解。可以允許存在多個(gè)出口。

3. 界函數(shù):?jiǎn)栴}規(guī)模變化的函數(shù),保證遞歸的規(guī)模向出口條件靠攏。

利用遞歸解決常見(jiàn)問(wèn)題

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

例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)開(kāi)始可以使用公式求解。

程序:

```c

int f(int n){

if(n1 || n2)

return 1;

else

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

}

```

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

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

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

- 當(dāng)n

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

2. 所有盤(pán)子都有蘋(píng)果,相當(dāng)于可以從每個(gè)盤(pán)子中拿掉一個(gè)蘋(píng)果,不影響放法的數(shù)目,即f(m,n) f(m-n,n)。而總的放蘋(píng)果的放法數(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ù)的出口條件說(shuō)明如下:

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

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

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

標(biāo)簽: