c语言 调用函数,输出Fibonacci数列的m项至n项 我是新手,请用简单的函数写,谢谢!0
67046755dw2015.04.21浏览354次分享举报
Description
定义递归函数fib(n),它的功能是返回第n项Fibonacci数,如fib(7)的返回值是13。在主函数中,输入两个正整数m和n,调用该函数输出Fibonacci数列的m项至n项,共(n-m+1)项。 Fibonacci序列为:1 1 2 3 5 8 13 21.....
Input
多组测试数据,每组输入两个正整数m和n。
Output
输出m-n之间所有的Fibonacci数,每个数占5位。
Sample Input
1 4
2 7
4 9
Sample Output
1 1 2 3
1 2 3 5 8 13
3 5 8 13 21 34
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~以上是题目~~~~~~~以下是我写的,我写的错哪里了?
#include
int main(int argc, char *argv[])
{
int fib(int n);
int m,n,a;
while(scanf("%d%d",&n,&m)!=0)
{
for(;n<=m;n++)
{
a=fib(n);
}
printf(" %d",a);
}
return 0;
}
int fib(int n)
{
int item1=1,item2,i,q;
for(i=1;i<=n;i++)
{
if(n==1||n==2)
{item1=item2=1;}
else
q=item1=item1+item2;
item1=item2;
item2=q;
}
return q;
}