C#中可以使用递归和非递归两种方式实现斐波那契数列。
一、递归实现代码
递归实现斐波那契数列比较简单,代码如下:
public static int Fibonacci_Recursive(int n)
{
if (n <= 0)
{
return 0;
}
if (n == 1 || n == 2)
{
return 1;
}
return Fibonacci_Recursive(n - 1) + Fibonacci_Recursive(n - 2);
}
其中,参数n表示第n个斐波那契数。当n<=0时,返回0;当n=1或n=2时,返回1;否则返回前两项相加的值。
递归实现代码比较简单,但是递归深度很容易超过系统默认值,导致堆栈溢出。因此,当n比较大时,建议使用非递归实现方式。
二、非递归实现代码
非递归实现斐波那契数列需要用到循环,代码如下:
public static int Fibonacci_NonRecursive(int n)
{
if (n <= 0)
{
return 0;
}
if (n == 1 || n == 2)
{
return 1;
}
int a = 1;
int b = 1;
int sum = 0;
for (int i = 3; i <= n; i++)
{
sum = a + b;
a = b;
b = sum;
}
return sum;
}
其中,参数n表示第n个斐波那契数。当n<=0时,返回0;当n=1或n=2时,返回1;否则通过循环求出第n个斐波那契数。
注意,循环从第三项开始,需要先计算第三项,并将a和b的值更新为第二项和第三项,依次类推,直到计算出第n项。
下面通过两个例子来说明:
例子一
输入3,期望输出2,调用代码如下:
int result = Fibonacci_Recursive(3);
Console.WriteLine(result);
输出结果为2,符合期望。
例子二
输入6,期望输出8,调用代码如下:
int result = Fibonacci_NonRecursive(6);
Console.WriteLine(result);
输出结果为8,符合期望。
以上就是C#斐波那契数列的实现代码攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#斐波那契数列(Fibonacci)(递归,非递归)实现代码 - Python技术站