题解 | #Fibonacci数列#
Fibonacci数列
https://www.nowcoder.com/practice/18ecd0ecf5ef4fe9ba3f17f8d00d2d66
Fibonacci数列
/* 2022年09月21日 11:43:09 循环生成斐波那契数,直到碰到最接近n的数。 然后找n前后两个斐波那契数,看看哪个距离更近。 */ #include <iostream> #include <algorithm> using namespace std; int main() { int x; cin >> x; int a = 0, b = 1, c = 1; // 3个斐波那契数 while (1) { a = b; b = c; c = a + b; if (c >= x) break; // 这样 b x c x就被夹在2个斐波那契数中间 } int ret = min(x - b, c - x); cout << ret << endl; }