首页 > 其他 > 详细

9--斐波那契数列

时间:2015-09-27 20:03:09      阅读:197      评论:0      收藏:0      [点我收藏+]
/*
斐波那契数列

    本题主要讨论递归和循环的效率问题。
*/

#include <stdio.h>

static int i = 0;
//递归实现
int fibonacci_solution_one(int num)
{
    i++;
    if (num == 0 || num == 1)
        return 1;
    return fibonacci_solution_one(num - 1) + fibonacci_solution_one(num - 2);
}

//循环实现
int fibonacci_solution_two(int num)
{
    if (num == 0 || num == 1)
        return 1;

    i = 1;
    int p1 = 1;
    int p2 = 1;
    int temp = 0;

    for (int j = 2; j <= num; j++)
    {
        i++;
        temp = p1 + p2;
        p1 = p2;
        p2 = temp;
    }

    return temp;
}

void testOne(int num)
{
    i = 0;
    printf("fibonacci_solution_one --  %d\n", fibonacci_solution_one(num));
    printf("i = %d\n", i);
}

void testTwo(int num)
{
    i = 0;
    printf("fibonacci_solution_two -- %d\n", fibonacci_solution_two(num));
    printf("i = %d\n", i);
}

int main()
{
    testOne(0);
    testOne(1);
    testOne(2);
    testOne(20);

    testTwo(0);
    testTwo(1);
    testTwo(2);
    testTwo(20);
}

 

9--斐波那契数列

原文:http://www.cnblogs.com/hgonlywj/p/4842550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!