码迷,mamicode.com
首页 > 其他好文 > 详细

简单斐波那契——计蒜客(4)

时间:2015-08-29 08:29:33      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

题目来自“计蒜客”第4题。

解算法题之前,务必先写出与之对应的数学表达式,用于描述算法。

数学描述如图:

技术分享

根据“数学描述“,写出代码如下:

#include <stdio.h>

int main()
{
    int N =0 ;
    scanf("%d", &N);
    int i, fn1 = 1, fn2 = 0, fn;
    switch(N)
    {
        case 0:
            printf("0");
            break;
        case 1:
            printf("1");
            break;
        default:
            for(i = 2; i <= N; i++ )
            {
                fn = fn1 + fn2;
                fn2 = fn1;
                fn1 = fn;
            }
            printf("%d", fn);
    }
    return 0;
}

 愉快的完毕。

反思,该算法的时间复杂度为O(N),即算法的执行时间取决于数列的项数。如果能推到出“第N项斐波那契数公式“,直接带入公式,那么时间复杂度将进化到O(1)。

简单斐波那契——计蒜客(4)

标签:

原文地址:http://www.cnblogs.com/fengyubo/p/4768318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!