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

使用元编程,用最简单的递归构造快速斐波那契数函数。

时间:2014-08-27 20:11:08      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   div   代码   log   sp   on   

使用元编程和模板递归技术,既可以使最原始的递归方程具备惊人的快速高效。

 

template <int T>
class metafib {
public:
    static const long long fib=metafib<T-1>::fib+metafib<T-2>::fib;
};

template <>
class metafib<1> {
public:
    static const int fib=1;
};

template <>
class metafib<2> {
public:
    static const int fib=2;
};

测试代码:

int main(){
    long a1=clock();
    cout<<metafib<200>::fib<<endl;
     long a2=clock();
    cout<<a2-a1;
}

速度与迭代法的fib近似,

跌打法fib:

long long fibcal(long long n){
    if(n<=2)
        return n;
    n-=2;
    long long a=1;
    long long b=2;
    while(n--){
        b=a+b;
        a=b-a;
    }
    return b;
};

 

使用元编程,用最简单的递归构造快速斐波那契数函数。

标签:style   blog   color   使用   div   代码   log   sp   on   

原文地址:http://www.cnblogs.com/fandingBlog/p/3940093.html

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