斐波那契数列的C语言实现
斐波那契数列(Fibonacci sequence),又称黄金分割数列,本文我们使用C语言递归函数来输出斐波那契数列。
Fibonacci 数列具有这样的特征,它的前两项都为 1,从第 3 项开始,每一项都是前两项的和。例如 1,1,2,3,5,8,13,21,34……可以由下面的公式表示。
其中,n 表示第几项,函数值 fibonacci(n) 表示第 n 项的值。当 n 的值大于 2 时,每一项的计算方法都一样,因此可以定义一个 f(n) 函数来计算第 n 项的值,递归的终止条件是当 n=1 或 n=2 时。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
Fibonacci 数列具有这样的特征,它的前两项都为 1,从第 3 项开始,每一项都是前两项的和。例如 1,1,2,3,5,8,13,21,34……可以由下面的公式表示。

其中,n 表示第几项,函数值 fibonacci(n) 表示第 n 项的值。当 n 的值大于 2 时,每一项的计算方法都一样,因此可以定义一个 f(n) 函数来计算第 n 项的值,递归的终止条件是当 n=1 或 n=2 时。
示例
用递归法求 Fibonacci 数列(斐波那契数列)。代码如下:#include<stdio.h> long fibonacci(int n) /*求Fibonacci数列中第n个数的值*/ { if(n==1||n==2) /*Fibonacci数列中前两项均为1,终止递归的语句*/ return 1; else return(fibonacci(n-1)+fibonacci(n-2)); /*从第3项开始,下一项是前两项的和*/ } main() { int n,i; long y; printf("Input n:"); scanf("%d",&n); for(i=1;i<=n;i++) /*列出Fibonacci数列的前n项*/ { y=fibonacci(i); printf("%ld ",y); } printf("\n"); }运行结果:
Input n:8
1 1 2 3 5 8 13 21
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。