看看这个关于Fibonacci程序哪里错啦~~~谢谢呦
#include <stdio.h>
#include <math.h>
int main( )
{
int ri,repeat;
int i, m, n;
long f;
long fib(int n);
scanf( "%d ",&repeat);
for(ri=1;ri <=repeat;ri++){
scanf( "%d%d ", &m, &n);
for(i=1;;i++){
f=fib(i);
if(f> =m&&f <=n)
printf( "%ld ", f);
else if(f> n)
break;}
printf( "\n ");
}
}
long fib(int n)
{
int i,s;
if(n==1)
return 1;
else if(n==2)
return 1;
else if(n> =3)
{for(i=3;i <=n;i++)
s=fib(i-1)+fib(i-2);}
return s;}
[解决办法]
int fiboNumber(n)
{
if(n==1||n==2)
return 1;
else return (fiboNumber(n-1)+fiboNumber(n-2));
}
你的fib()函数里面的for循环不知所云(难道是求前n项的和??)
[解决办法]
long fib(int n)
{
int i,s;
if(n==1)
return 1;
else if(n==2)
return 1;
else if(n> =3)
{for(i=3;i <=n;i++)
s=fib(i-1)+fib(i-2);}
return s;}
-----------------------------------------------
去掉for循环就可以了,自己会递归
else if(n> =3)
{
s=fib(i-1)+fib(i-2);
return s;
}