求C语言高手帮忙做一道编程题,谢谢~

【问题描述】输出斐波那契(Fibonacci)序列的前15项:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610

斐波那契(Fibonacci)序列第1、第2项为1,后面的任意一项都是其前两项之和。

【样例输出】

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

【样例说明】
样例输出中,每个数字后面有3个空格。

第1个回答  2012-04-30
Fibonacci数列问题
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)

**************************
***************************
#include <stdio.h>
int main()
{
int a,b,c,n,m;
scanf("%d",&m);
while(m--) //有m组数可以输入
{
scanf("%d",&n);
if(n==1)
c=1;
a=0;
b=1;
if(n>=2)
{
c=a+b;
a=b;
b=c;
n--;
}
printf("%d\t\t\t",c);
printf("\n");
}
return 0;
}
第2个回答  2012-04-30
#include <stdio.h>
void main()
{
int num1, num2, t;
num1=num2=1;
for(int i=0; i < 15; i++)
{
printf("%d ", num1);
t=num1;
num1=num2;
num2+=t;
}
}本回答被提问者采纳
第3个回答  2012-04-30
以前写的!!你编译下!!

#include <stdio.h>
/*for exit*/

#include <stdlib.h>

int func(int num);

int func(int num)
{
int i,a,b,c;
if(num<0)
{
printf("is error !\n");
exit(0);
}

if(num==0 || num==1)
return 1;

a=1,b=1,c=a+b;
for(i=2;i<num;i++)
{
a=b;
b=c;
c=a+b;
}

return c;
}

int main(void)
{
int num,tmp;

for(num=0;num<=40;num++)
{
tmp=func(num);
printf("%d ",tmp);
}

return 0;
}
/*
int func(int num)
{
int va1,va2;

if(num==0 || num==1) return 1;

va1 = func(num-1);
va2 = func(num-2);

return va1+va2;
}

*/
第4个回答  2012-04-30
#include<stdio.h>//不知道你学没学过数组,这是用数组做的
void main()
{
int a[15],i;
a[0]=a[1]=1;
for(i=2;i<15;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<15;i++)
printf("%d ",a[i]);
}

#include<stdio.h>//这是用普通方法做的
void main()
{
int f1,f2,i;
f1=f2=1;
for(i=0;i<=7;i++)
{
printf("%d %d ",f1,f2);
f1=f1+f2;
f2=f1+f2;
}
}
第5个回答  2012-05-01
自己上网查:
相似回答