求数列1,1,2,3,5……前20项的和,用C语言编写

一定要用C语言写
一定要用C语言写,用FOR语句,不可以用数组

第1个回答  2007-03-15
/*斐波那契数*/

#include "iostream.h"
#include "windows.h"
/*斐波那契数*/
int nums[100];
int result=2;
int f1(int n)//非递归
{
int i;
for(i=2;i<n;i++)
{
nums[i]=nums[i-1]+nums[i-2];
result+=nums[i];
}
return result;
}
main()//求前n项的和,n从键盘输入
{
int n,n_time;
cout<<"please input the num"<<endl;
cin>>n;
n_time=GetTickCount();
nums[0]=1;
nums[1]=1;
f1(n);
cout<<result<<endl;
cout<<"耗时"<<GetTickCount()-n_time<<endl;

}
第2个回答  2007-03-15
利用递归f(n)=F(n-1)+f(n-2)
f(2)=f(1)=1;
程序如下:
int f(int n)
{int k;
if(n==1||n==2)k=1;
else k=f(n-1)+f(n-2);
return(k);
}

main()
{long s=0;
int i;
for(i=1;i<=20;i++)
s=s+f(i);
printf("%ld\n",s);
getch();
}

结果是:17710
第3个回答  2007-03-15
这个是不是简单点,
#include "stdio.h"
#include "conio.h"
main()
{ int a=1,b=1,m,n=0,t;
for(i=0;i<21;i++)
{m=a+b;
n=n+m;
t=b;
a=t;
b=m;
}
printf("zong he wei:%d",);

getch();
}本回答被提问者采纳
相似回答