无聊了,3种方法实现20个斐波那契数生成。
为什么是20个呢?一来int型的空间太小了,如果我写100个的话,绝对会越界;二来模板元的展开级数默认是500层,再多还得改编译器参数,这样很蛋疼- -
均为C++代码。
第一种方法是while语句循环;
第二种方法是函数迭代,也就是递归函数;
第三种方法是模板元编程。
复制内容到剪贴板
代码:
#include <iostream>
using namespace std;
//////////////////////////////////////
//方法一
/*
int main()
{
int a=0,b=1,i=0;
while(i<20)
{
cout<<a<<","<<b<<",";
a+=b;
b+=a;
i++;
}
getchar();
}
*/
//////////////////////////////////////
//方法二
/*
void Feb(int & a,int & b,int & i)
{
if(i==0)
return ;
cout<<a<<","<<b<<",";
a+=b;
b+=a;
Feb(a,b,--i);
}
int main()
{
int a0=0,b0=1,i=20;
Feb(a0,b0,i);
getchar();
return 0;
}
*/
//////////////////////////////////////
//方法三
/*
template <int i>
class Feblar
{
public:
static void Feb(int a=0,int b=1)
{
cout<<a<<","<<b<<",";
a+=b;
b+=a;
Feblar<i-1>::Feb(a,b);
}
};
template<>
class Feblar<0>
{
public:
static void Feb(int a,int b)
{
}
};
int main()
{
Feblar<20>::Feb();
getchar();
}
*/
//////////////////////////////////////