C#递归算法实现 Fibonacci数列
著名的Fibonacci数列,定义如下:
f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2),n>2
用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契系数就由之前的两数相加。首几个斐波那契系数是:
0, 1, 1, 2, 3, 5, 8, 13, 21
使用两种方法实现斐波那契数列,其中一个用到了递归循环。
C# 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Fibonacci
{
class Program
{
/// <summary>
/// C#递归算法实现 Fibonacci数列
/// 著名的Fibonacci数列,定义如下
/// f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2),n>2
/// 用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契系数就由之前的两数相加。首几个斐波那契系数是:
/// 1, 1, 2, 3, 5, 8, 13, 21
/// </summary>
/// <param name="args"></param>
///
public const int MAXN = 64;
static int[] fib = new int[MAXN];
static void Main(string[] args)
{
/****第一种方法
int count, n, t1=0, t2=1, display;
Console.Write("Enter number of terms: ");
n = Int32.Parse(Console.ReadLine());
Console.Write("\nFibonacci Series: {0} {1} ", t1, t2);
count = 2;
while (count <= n)
{
display = t1 + t2;
t1 = t2;
t2 = display;
++count;
Console.Write("{0} ", display);
}
*/
Console.Write("\n " );
//*****第二种方法,使用递归循环解决
int[] fi=new int[20];
//Fibonacci f = new Fibonacci();
for(int i=0;i<8;i++){
fi[i] = fibonacci_Series(i);
//System.out.print(fi[i]+"\t");
Console.Write(fi[i] + "\t");
}
Console.ReadLine();
}
static int fibonacci_Series(int n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci_Series(n-1) + fibonacci_Series(n-2);
}
}
}Resutl:
原文:http://asheng0321.blog.51cto.com/2570211/1584058