斐波那契数列:
又称黄金分割数列,指的是这样一个数列: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
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项)