C语言源程序如下:
#include
int main()
{
int array[100]={1,1};//斐波那契数列前两个元素均为0
int i=0;//循环变量
int n=20;//数列需要求的个数
int sum = 0;//和变量
for(i=2;i
{
array[i]=array[i-1]+array[i-2];//数列原理
}
printf("arr[1]-arr[%d] = ", n);//提示输出数列元素
for (i = 0; i < n; i++)//遍历数列
{
printf("%d ",array[i]);//输出arr[1]-arr[n]元素内容
sum += array[i];//顺便进行求和
}
printf("\n%d ", sum);//输出求和结果
return 0;
}
程序运行结果如下:
扩展资料:
利用递归原理进行求斐波那契数列的求解和求前n项和:
#include
int fibonacci(int n) //递归函数
{
if (n == 0 || n == 1)
return 1;
if (n > 1)
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int i = 0;
for (i = 0; i < 30; i++)
{
printf("fibonacci(%d) = %d\n", i, fibonacci(i));
}
return 0;
}
#include
int main()
{int a[20],n,i,s=2;
a[0]=a[1]=1;
printf("1 1 ");
for(i=2;i<20;i++)
{a[i]=a[i-1]+a[i-2];
s+=a[i];
printf("%d ",a[i]);
}
printf("\nsum=%d\n",s);
return 0;
}
#include
int fib(int n);
int main(void)
{
int sum=0;
for(int i=1;i<=20;i++)
{
if(i%11==0)
printf("\n");
printf("%5d",fib(i));
sum+=fib(i);
}
printf("\n前20项之和为:%d\n",sum);
}
int fib(int n)
{
if(n<3)
return 1;
else
return fib(n-1)+fib(n-2);
}