今天分享下斐波那契数列:
/**
斐波那契数列:
又称黄金分割数列,指的是这样一个数列: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 Fiboniacci(int n);
int main()
{
int n;
printf("Input the number of n:");//请输入要输出多少项(自然数)斐波那契数列:
scanf("%d",&n);
printf("**********************\n");
//int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
int i;
for (i = 0; i < n+1; i++) //输出所有项
{
printf("%d, ", Fiboniacci(i));
if (i != 0 && i%5 == 0) //每五项进行一次换行(第一行多一个第0项)
printf("\n");
}
printf("**********************\n");
printf("The %dth number is: %d\n", n, Fiboniacci(n)); //输出要求的项
return 0;
}
int Fiboniacci(int n) //n代表第几项。特别指出:0是第0项,不是第1项。
{
if (n <= 1)
return n;
else
return Fiboniacci(n-1) + Fiboniacci(n-2);