1.遞迴演算法的定義:
2.遞迴與迭代的優劣
eg1:斐波那契數列:斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:f(0)=1,f(1)=1, f(n)=f(n-1)+f(n-2)(n>=2,n∈n*)
1/*2斐波那契數列 迭代實現 (列印出前40個)3*/
4 #include 5
intmain()
14 printf("\n"
);15
16return0;
1718 }
1/*2eg2:階乘:亦即n!=1×2×3×...×n。階乘亦可以遞迴方式定義:0!=1,n!=(n-1)!×n。斐波那契數列 遞迴實現 (列印出前40個)3*/
4 #include 5/*6
int fb(int n)else if(n == 1)else14}
15*/
1617
int fb(int
n)else
2324}25
2627
intmain()
32 printf("\n"
);33
34return0;
35 }
1/*2解題思路:遞迴實現階乘
3遞迴方式定義:0!=1,n!=(n-1)!×n。4*/
eg4:二分法查詢
1/*2二分法查詢:迭代實現3*/
4 #include 5
intmain();
7int
input, low, high, mid;
8 low = 0
;9 high = 9
;10 mid = (low + high) / 2
;11 scanf("
%d", &input);
1213
while(input !=arr[mid])else21}
22 printf("
%d ",mid);/*
輸出要查詢數字在陣列中的下標
*/23
return0;
2425 }
1/*2二分法查詢:遞迴實現3*/
45 #include 6
int fun(int low, int high, int input, int
arr)else
else19}
2021}22
intmain();
24int
input, low, high;
25 low = 0
;26 high = 9
;27 scanf("
%d", &input);
28 printf("
%d \n
",fun(low, high, input, arr));/*
輸出要查詢數字在陣列中的下標
*/29
return0;
30 }
關於遞迴演算法的幾個例子(C語言)
1.遞迴演算法的定義 2.遞迴與迭代的優劣 eg1 斐波那契數列 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 2...
06 5 關於指標的幾個例子
1 實現乙個方法 多個返回值 的效果 返回數字的個位 十位 百位。基於本程式的一些基本的c語法 為取餘運算子,用於把它前面的整數值或表示式除以 其後面的整數值或表示式,結果為不能被後面的整數或表達 式整除的最小整數,它後面的數值應該為大於1的正整數。如 表中所示的 13 7 就表示13 除以7餘6。...
關於記憶體分配的幾個例子
1.include include include void getmemory char p void test int main void getmemory char p void test void 分析 在vs2010上編譯可以通過,但是不能執行。個人理解 執行getmemory 時,p是...