题目链接:Fibonacci数列_牛客题霸_牛客网 (nowcoder.com)
一、分析题目
在求斐波那契数列的过程中判断⼀下:何时 n 会在两个 fib 数之间。
二、代码
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a = 0, b = 1, c = 1;
while(n > c)
{
a = b;
b = c;
c = a + b;
}
cout << min(c - n, n - b) << endl;
return 0;
}
三、反思与改进
这是一道很基础的题目,没直接 AC 是真没想到,提交后再打开链接发现之前大一刚学 C 语言的时候刷过这道题(晕了,不知道是不是自己想复杂了,很浅显易懂的一道题),有时候应该学会跳出来往简单方向去思考,不要盲目使用 STL 容器。