各位看官們,大家好,從今天開始,我們講大型章回體科技小說 :C栗子,也就是C語言實例。閑話休提, 言歸正轉(zhuǎn)。讓我們一起talk C語言實例吧!
看官們,上一回中咱們說的是判斷閏年的例子,這一回咱們說的例子是:求階乘。
看官們,階乘是數(shù)學中的一種運算,通常使用感嘆號來表示階乘。比如:3!表示3的階乘。階乘的定義是這 樣的:正整數(shù)n=0時,n的階段乘為1,n>0時,n的階乘為n*(n-1)!。
看官們,我在程序中使用了兩種方法來求階乘。一種是遞歸方法,另外一種是循環(huán)方法。正文中就不寫代 碼了,詳細的代碼如下,請大家參考使用:
1 /* **************************
2 * For Factorial
3 * *************************/
4 #include<stdio.h>
5
6 #define SUCCESS 1
7 #define FAILED 0
8 #define BAD_PARAMETERS -1
9
10 //使用遞歸方法來求階乘
11 int Factorial(int n)
12 {
13 if(n < 0)
14 return BAD_PARAMETERS;
15
16 if(n == 0)
17 return 1;
18 else
19 return n*Factorial(n-1);
20 }
21
22 //使用循環(huán)方法來求階乘
23 int f(int n)
24 {
25 int res = 1;
26 int i = 0;
27
28 if(n < 0)
29 return BAD_PARAMETERS;
30
31 if(n == 0)
32 return 1;
33
34 for(i=0;i<n;++i)
35 res *= (i+1);
36
37 return res;
38 }
39
40 int main()
41 {
42 int result = 0;
43
44 result = Factorial(5);
45 if(result > 0)
46 printf("%d \n",result);
47
48 result = f(5);
49 if(result > 0)
50 printf("%d \n",result);
51
52 return 0;
53 }
補充一點:循環(huán)和遞歸是比較常見的方法,所以這里不做過多的說明。不過,在工程中盡量少用遞歸,一 般情況下,遞歸可以解決的問題,可以使用循環(huán)方法去解決。不推薦遞歸的理由是因為,遞歸的性能稍微 差一些,尤其在遞歸的嵌套比較深的時候。
各位看官,關(guān)于判求階乘的例子咱們就說到這里。欲知后面還有什么例子,且聽下回分解。