请帮忙看一下这个程序

mjken 2007-04-08 07:21:39
用编译时间换取执行时间

用了两个编译器都无法通过
#include <iostream.h>
#include <time.h>

#define FibT(n) Fib<n>::var

template<> struct Fib<0> {enum {var=0};};
template<> struct Fib<1> {enum {var=1};};
template<unsigned int N>
struct Fib{
enum
{
var=Fib<N-1>::var+Fib<N-2>::var
};

};


unsigned int RecursiveFib(unsigned int m)
{
if(m<=1)
return m;
return RecursiveFib(m-1)+RecursiveFib(m-2);
}
void main()
{
unsigned int temp;
clock_t start,finish;
double duration;
start=clock();
temp=FibT(30);
finish=clock();

duration=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<temp<<endl;
cout<<duration<<endl;
return;
}
请问要如何修改
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjken 2007-04-09
  • 打赏
  • 举报
回复
谢谢了 呵呵 自己一时糊涂
taodm 2007-04-08
  • 打赏
  • 举报
回复
template<unsigned int N>
struct Fib{
enum
{
var=Fib<N-1>::var+Fib<N-2>::var
};

};
template<> struct Fib<0> {enum {var=0};};
template<> struct Fib<1> {enum {var=1};};
特化必须在模板【前置】声明之后。注意基本功呀。
不想低调 2007-04-08
  • 打赏
  • 举报
回复
mark
mjken 2007-04-08
  • 打赏
  • 举报
回复
是vc的 还有一个dev的 不过两个都不能通过
orc1984 2007-04-08
  • 打赏
  • 举报
回复
哪两个编译器 不是VC6.0吧?
用G++看下

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧