k階斐波那契數列fibonacci第n項求值

已知K階斐波那契數列定義爲:
f0 = 0,  f1 = 0, … , fk-2 = 0, fk-1 = 1;
fn = fn-1 + fn-2 + … + fn-k , n = k , k + 1, …算法

給定階數k和n的值,求fn的值。函數

既然是遞歸數列,那咱們就用遞歸函數來實現,具體代碼以下:學習

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int func(int k, int n);
 5 
 6 int fibonacci(int k, int n){
 7 
 8     if(k<1){
 9         return 0;
10     }
11 
12     if(n<k){
13         return 0;
14     }
15     int i = 0;
16     int sum = 0;
17     for(i=1;i<=n;i++){
18         sum = func(k, i);
19     
20         printf("fibonacci %d sum is %d\n", i, sum);
21     }
22     
23 
24     return 0;
25 } 
26 
27 int func(int k, int n)
28 {
29     int i = 0,sum = 0;
30     if(n<k-1){
31         return 0;
32     }else if(n == k-1){
33         return 1;
34     }else{
35         for(i=1;i<k+1;i++){
36             sum = sum+func(k, n-i);
37         }
38     }
39     return sum;
40 }
41 
42 int main(){
43     
44     int k,n;
45     printf("Please input fibonacci order:\n");
46     scanf("%d",&k);
47     printf("Please input fibonacci num :");
48     scanf("%d",&n);
49     fibonacci(k, n);
50     
51     
52     return 0;
53 
54 } 

 

 

你們有其餘更好的算法,歡迎留言討論,共同窗習。spa

關於斐波那契的一個小段子,跟你們分享,說學校食堂的菜就是八大菜系以後的第九大菜系斐波那契菜,哈哈哈。code

博客地址:https://www.cnblogs.com/r-yan/blog

相關文章
相關標籤/搜索