题目链接: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 容器。