斐波那契等

2021-10-01 06:57:41 字數 2269 閱讀 8269

1.遞迴和非遞迴分別實現求第n個斐波那契數。

//1.遞迴和非遞迴分別實現求第n個斐波那契數。

//第二種方法:遞迴

intfib

(int n)

if(n ==2)

return

fib(n -1)

+fib

(n -2)

;}intmain()

//第一種方法非遞迴,使用三個變數分別儲存三個狀態值,

//注意連續賦值的順序,(相同元素一定是首尾相接),不然就會出錯

//還有while迴圈中,不要忘記改變迴圈條件的值,不然會陷入死迴圈

intfib

(int n)

return result;

}int

main()

2.編寫乙個函式實現n^k,使用遞迴實現

//2.編寫乙個函式實現n^k,使用遞迴實現

//n^k=n*n^(k-1),

//遞迴的三個要點,

//1,將問題進行拆分

//2,有結束條件、

//3,每次遞迴後,都會距離這個結束條件更近(收斂)

intfaction

(int n,

int k)

return n*

faction

(n, k -1)

;}intmain()

寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,

例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19

//3. 寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,

//例如,呼叫digitsum(1729),則應該返回1 + 7 + 2 + 9,它的和是19

intdigitsum

(int n)

return

digitsum

(n /10)

+ n %10;

}int

main()

編寫乙個函式 reverse_string(char * string)(遞迴實現)

實現:將引數字串中的字元反向排列。

要求:不能使用c函式庫中的字串操作函式。

//4. 編寫乙個函式 reverse_string(char * string)(遞迴實現)

//實現:將引數字串中的字元反向排列。

//要求:不能使用c函式庫中的字串操作函式。

void

reverse_string

(char

* a)

reverse_string

(a +1)

;printf

("%c "

,*a);}

intmain()

5.遞迴和非遞迴分別實現strlen

//5.遞迴和非遞迴分別實現strlen

//第一種方法:非遞迴

//int strlen(char* a)

// return len;

//}//第二種方法:遞迴

intstrlen

(char

* a)

return1+

strlen

(a +1)

;}intmain()

6.遞迴和非遞迴分別實現求n的階乘

//6.遞迴和非遞迴分別實現求n的階乘

// 第二種,遞迴

intfactorial

(int num)

return num *

factorial

(num -1)

;}intmain()

//第一種,非遞迴

intfactorial

(int num)

return result;

}int

main()

7.遞迴方式實現列印乙個整數的每一位

//7.遞迴方式實現列印乙個整數的每一位

void

print

(int a)

print

(a /10)

;printf

("%d "

,a %10)

;}intmain()

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契堆

以下是實現的程式 肯定可以再優化的。include include include include using namespace std class node delete m child m child null class fibonacciheap node insert int key v...