0. 介绍
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 2,n∈ N*)在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
摘自斐波那契数列-百度百科
1. 递归实现
python
def fib(index):if index == 1 or index == 2:return 1else:return fib(index - 1) + fib(index - 2)def main():for i in range(1, 10):print(fib(i), end = " ")if __name__ == "__main__":main()
C
#include<stdio.h>int fib(int index){if (index == 1 || index == 2) {return 1;}return fib(index - 1) + fib(index - 2);}int main(){for (int i = 1; i <= 10; i++) {printf("%d ", fib(i));}return 1;}
2. 非递归实现
python
def fib(n):a, b = 1, 1for i in range(1, 10):print(a, end = " ")tmp = a + b a = b b = tmpdef main():fib(10)if __name__ == "__main__":main()
C
#include<stdio.h>int fib(int index){int a = 1, b = 1;int i;int tmp;for (i = 1; i <= 10; i++) {printf("%d ", a);tmp = a + b;a = b;b = tmp;}}int main(){fib(10);return 1;}