题解 | Fibonacci数列

Fibonacci数列

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

#include <stdio.h>

int main(int argc, char const* argv[])
{
    int i = 2,d1=0,d2=0; long long n = 0,fib0=0,fib1=1,fib=0;
    scanf("%ld", &n);
    if (n == 1) 
        d2 = 0; 
    else
    {
        for (; i <= n; i++)
        {
            fib = fib0 + fib1;
            d2 = n - fib;
            if (d2 <= 0)break;
            fib0 = fib1;
            fib1 = fib;
            d1 = d2;
        }
        d2 = (d1 < -d2) ? d1 : -d2;
    }
    printf("%d ",d2);
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务