斐波那契數列的一種實現
由於棧深度有限,改用for迴圈實現了一種斐波那契數列
2.當月份大於等於2時,均為前兩個月的數字之和。
3.定義乙個三個元素的整型陣列,初始化兩個數字分別為0和1。
4.依次累積月份,將3中的陣列看成乙個首尾相接的環(通過月份取模仿真),依次累加前兩個位置上的資料(模擬前乙個月和前兩個月)。
下面是**實現
#include #include #include #define n 3
#define left(i) ((i) + n - 1) % n
#define right(i) ((i) + 1) % n
int * get_fibonacci_circle(int month)
else if(i % 3 == 1)
else
}return circle;
}int * get_fibonacci_circle2(int month)
return circle;
}void get_fibonacci_circle_result(int month)
int *p = get_fibonacci_circle2(month);
printf("第%d月後的總數為%d\n" , month , p[month % 3]);
printf("後三個月的資料");
printf_arr(p , 3);
free(p);
}int main(void)
執行截圖
斐波那契數列的非遞迴實現
有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?兔子的規律為數列1,1,2,3,5,8,13,21 屬於斐波那契數列問題。該數列有乙個規律 f 0 1 f 1 1,f n f n 1 f n 2 n 2 由此可以用遞...
遞迴實現斐波那契數列
斐波那契數列 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n package com.algorithm.tiger.recursion 遞迴和非遞迴方法實現斐波那契數列 斐波那契數列 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n descripti...
斐波那契數列遞迴實現
什麼是fibnacci數列?斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家萊昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 在數學上與 分割的關係 ...