zl程序教程

您现在的位置是:首页 >  其他

当前栏目

使用模板元编程快速的得到斐波那契数。。

模板编程 快速 得到 斐波 使用
2023-09-14 08:59:44 时间

这是一种将运行时消耗转移到编译器消耗的方法,是c++模板的一种应用。

当你的程序运行时效率需要特别高的时候,可以考虑这样的方法。

模板实例化的时候需要常量:

#include iostream 

using namespace std;

template unsigned N 

struct Fib

 enum

 Val = Fib N-1 ::Val + Fib N-2 ::Val //递归。。

template //针对和的特化作为结束的条件

struct Fib 0 

 enum

 Val = 0

template 

struct Fib 1 

 enum

 Val = 1

int main()

 cout Fib 20 ::Val endl;

 return 0;

}

如果你觉得Fib 20 ::Val这样的调用很麻烦的话可以定义一个类似的宏使得其应用有类似于函数调用的形式:

#define FibFuc( n ) (Fib n ::Val)


斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。