问题描述
编写升序输出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
AC代码
#include <iostream>
#include <stdio.h>
using namespace std;
int fib(int n){
int count_1 = 0;
int count_2 = 1;
int sum = 0;
if(n == 1)
{
cout << 1 <<endl;;
return 1;
}
for(int i = 0; i < n -1; i++)
{
sum = count_1 + count_2;
count_1 = count_2;
count_2 = sum;
}
return sum;
}
int main()
{
int m,n;
cin >> m >> n;
int i = 1;
int sum = 0;
while(fib(i) <= n)
{
if(fib(i) >= m && fib(i) <= n)
{
sum += fib(i);
}
i++;
}
cout << sum << endl;
return 0;
}