斐波那契数列:
又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),
即这个数列从第二项开始,每一项都等于前两项之和。
特别指出:0是第0项,不是第1项。
用递归法求斐波那契数列并列出所有项:
#include<stdio.h> int fun(int n) //n代表第几项。特别指出:0是第0项,不是第1项。 { if (n <= 1) return n; else return fun(n-1) + fun(n-2); } int main() { int n; printf("请输入要输出多少项(自然数)斐波那契数列:"); scanf("%d",&n); //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储 int i; for (i = 0; i < n+1; i++) //输出所有项 { printf("%d, ", fun(i)); if (i != 0 && i%5 == 0) //每五项进行一次换行(第一行多一个第0项) printf("\n"); } printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项 return 0; }
如:求第 30 项(顺便打印出0-30项)