C语言编程:用数组求Fibonacci数列前20个数 最后把数组作为参数传递给add函数,求这20个数的和并显示

用数组求Fibonacci数列前20个数,
用数组计算并保存20个数,并按照每行5个显示出来 ,最后把数组作为参数传递给add函数,求这20个数的和并显示
Fibonacci数列:n=1,F1=1;
n=2,F2=1;
n>=2,Fn=Fn-1 +Fn-2

第1个回答  2011-12-05
#include<stdio.h>

int add(int a[],int n)
{
int i;
int s=0;
for(i=0;i<n;i++)
s+=a[i];
return s;
}

main()
{
int a[30],b;
int i;
b=2;
a[0]=a[1]=1;
for(;b<20;b++)
{
a[b]=a[b-2]+a[b-1];
}
for(i=0;i<20;i++)
{
printf("%5d",a[i]);
if(i%5==4) printf("\n");
}
printf("%d\n",add(a,20));
}
第2个回答  2011-12-05
#include <stdio.h>

long add(int *a, int n)
{
int i;
long sum = 0;
for (i = 0; i < n; i++)
sum += a[i];
return sum;
}
int main()
{
int a[20] = {1, 1};
int i;
for (i = 2; i < 20; i++)
a[i] = a[i - 1] + a[i - 2];
for (i = 0; i < 20; i++)
{
printf("%5d ", a[i]);
if ((i + 1) % 5 == 0)
printf("\n");
}
printf("\nsum = %ld\n", add(a, 20));
return 0;
}
第3个回答  2011-12-05
#include<stdio.h>
int fibo(int n)
{
if(n==1||n==2)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
int add(int *a,int n)
{
int s=0,i;
for(i=0;i<n;i++)
s+=a[i];
return s;
}
void main()
{
int i,f[20],k=0;
for(i=0;i<20;i++)
{
f[i]=fibo(i+1);
printf("%d\t",f[i]);
k++;
if(k%5==0) printf("\n");
}
printf("sum=%d\n",add(f,20));
}
第4个回答  2011-12-05
在另一个帖子回答了本回答被提问者采纳
相似回答
大家正在搜