斐波那契數列的一種非遞迴實現

2021-10-19 14:11:48 字數 905 閱讀 6239

斐波那契數列的一種實現

由於棧深度有限,改用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 在數學上與 分割的關係 ...