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;
}

京公网安备 11010502036488号