c#实现菲波拉起数列
时间: 2023-11-22 08:46:08 浏览: 80
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];
}
```
相关问题
设计一个代码表示菲波拉且数列的计算
可以使用以下代码表示菲波拉且数列的计算:
#include <stdio.h>
int main() {
int n, i, t1 = , t2 = 1, nextTerm;
printf("请输入要计算的菲波拉且数列的项数:");
scanf("%d", &n);
printf("菲波拉且数列的前 %d 项为:\n", n);
for (i = 1; i <= n; ++i) {
printf("%d, ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return ;
}
模板类实现斐波拉且数列
好的,下面是一个使用模板类实现斐波那契数列的示例代码:
```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。
阅读全文