题解 | #Fibonacci数列#

Fibonacci数列

https://www.nowcoder.com/practice/18ecd0ecf5ef4fe9ba3f17f8d00d2d66

Fibonacci数列

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;
}
全部评论

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务