*题目描述
编写升序输出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
代码如下:
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <math.h>
using namespace std;
int fib(int n);
int main(){
int m,n,sum=0,i=1;
cin>>m>>n;
while(fib(i)<=n)
{
if(fib(i)<=n&&fib(i)>=m)
{
sum+=fib(i);
}
i++;
}
cout<<sum<<endl;
return 0;
}
int fib(int n)
{
if(n==1)
{
return 1;
}
else if(n==2)
{
return 1;
}
else return (fib(n-1)+fib(n-2));
}