题目描述
算法分析
找到把n夹在中间的两个斐波那契数列的数字,比如输入的数字9,你需要找到数字8和13,然后再输出差值绝对值较小的那个数字,如果一样,输出较小的数字
完整代码
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;//输入的样例
int f1 = 0;
int f2 = 1;
int f3 = 1;
while (1)
{
f1 = f2;
f2 = f3;
f3 = f1 + f2;
if ((f2 < n) && (f3 > n)||f2==n||f3==n)//要注意相等的情况
break;
}
if (abs(n - f2)<=abs(f3 - n))
cout << f2;
else
cout << f3;
return 0;
}
输出格式
8
8