模板类实现斐波拉且数列
时间: 2023-10-19 18:07:20 浏览: 53
好的,下面是一个使用模板类实现斐波那契数列的示例代码:
```cpp
template <int N>
struct Fibonacci {
enum { value = Fibonacci<N - 1>::value + Fibonacci<N - 2>::value };
};
template <>
struct Fibonacci<0> {
enum { value = 0 };
};
template <>
struct Fibonacci<1> {
enum { value = 1 };
};
int main() {
std::cout << Fibonacci<10>::value << std::endl; // 输出:55
return 0;
}
```
在这个示例代码中,我们定义了一个 `Fibonacci` 模板类,它有一个整数模板参数 `N`,用来指定要计算的斐波那契数列的项数。
在 `Fibonacci` 模板类中,我们使用了递归来实现斐波那契数列的计算。当 `N` 大于 1 时,使用 `Fibonacci<N - 1>::value + Fibonacci<N - 2>::value` 计算当前项的值;当 `N` 等于 1 或 0 时,直接返回 1 或 0。
在 `main` 函数中,我们实例化了一个 `Fibonacci` 模板类,并打印出了它计算出的第 10 项斐波那契数列的值 55。
相关问题
c#实现菲波拉起数列
C#实现斐波那契数列可以使用递归和非递归两种方式,下面分别介绍:
1. 递归实现斐波那契数列
递归实现斐波那契数列的代码如下:
```
public static int Fib(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fib(n - 1) + Fib(n - 2);
}
}
```
2. 非递归实现斐波那契数列
非递归实现斐波那契数列的代码如下:
```
public static int Fib(int n)
{
int[] arr = new int[100];
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= n; i++)
{
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n];
}
```
python怎么写斐波拉数列
斐波拉数列可以用以下python代码实现:def fibonacci(n):
if n<0:
print("Incorrect input")
# First Fibonacci number is 0
elif n==1:
return 0
# Second Fibonacci number is 1
elif n==2:
return 1
else:
return fibonacci(n-1)+fibonacci(n-2)# Driver Programprint(fibonacci(9))