题目描述
编写升序输出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的斐波那契数的和。
样例输入 Copy
2 5
样例输出 Copy
10
AC代码
#include<stdio.h>
int fib(int n){
if(n == 1){
return 1;
}else if (n == 2){
return 1;
}
int res = 0,a = 1,b = 1;
for (int i=3; i<=n; i++) {
res = a+b;
b=a;
a= res;
}
return res;
}
int main(){
int m,n,sum=0,i=1 ;
scanf("%d%d",&m,&n);
while (fib(i)<=n) {
if(fib(i)>=m&&fib(i)<=n){
sum += fib(i);
}
i++;
}
printf("%d",sum);
return 0;
}