剑指 Offer 10- I. 斐波那契数列(C语言)

剑指 Offer 10- I. 斐波那契数列(C语言)

1. Title

斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

详情:点击这里

2. Do it

version 0.1(success)

/*!
 * @file fib.c
 * @date 2021-8
 * @version 0.1
 * @author forbit
 * @brief 
 * @details score 0ms 5.3MB
 */

int fib(int n){
    /*!
     * @brief
     * @param[in] n 斐波那契(Fibonacci)数列的第 n 项
     * @return 斐波那契(Fibonacci)数列的第n项的数值,int型的。
     */
    
    //! 入参判断
    if(n<0 && n>100) exit(1);

    int a = 1;
    int b = 0;

    if(n==0) a=0;

    for(int i=1; i<n; i++){
        a = a + b;
        b = a-b;
        a %= 1000000007l;  //! 防止溢出
    }

    return a;
}
posted @ 2021-08-21 22:34  forbit  阅读(57)  评论(0)    收藏  举报