为什么输出和答案不一样??求解~~~
题目描述编写升序输出m和n之间所有的Fibonacci数。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)返回13
*Fibonacci={1,1,2,3,5,8,13,................}
an=an-1+an-2
输入
两个数m和n
输出
所有属于闭区间[m,n]即大于等于m,小于等于n的斐波那契数的和。
样例输入
2 5
样例输出
10
我是这么写的:
#include <stdio.h>
int fib(int n)
{
int result;
if (n<=0)
printf("input error!\n");
else if(n==1||n==2)
result=1;
else
result=fib(n-1)+fib(n-2);
return(result);
}
int main()
{
int i,s=0;
int m,n;
scanf("%d%d",&m,&n);
for (i=1;;i++)
{
if(fib(i)>=m && fib(i)<=n)
{
s=s+fib(i);
}
printf("%d\n",s);
}
}
为什么输出有很多行的10?????应该怎么改额?