1 1 2 3 5 8...
递归:

static int FibonacciRecursive(int n)
{
if (n == 1 || n == 2)
return 1;
else if (n >= 2)
{
return FibonacciRecursive(n - 1) + FibonacciRecursive(n - 2);
}
else if (n <= 0)
{
throw new ArgumentNullException(string.Format("{0} is illegal", n));
}
return 0;
}
{
if (n == 1 || n == 2)
return 1;
else if (n >= 2)
{
return FibonacciRecursive(n - 1) + FibonacciRecursive(n - 2);
}
else if (n <= 0)
{
throw new ArgumentNullException(string.Format("{0} is illegal", n));
}
return 0;
}
非递归:

static int Fibonacci(int n)
{
int lastNumber=1;
int secondNumber=1;
int currentNumber = 1;
if (n > 0)
{
for (int i = 3; i <= n; i++)
{
currentNumber = lastNumber+secondNumber;
secondNumber = lastNumber;
lastNumber = currentNumber;
}
}
else
{
throw new ArgumentNullException(string.Format ("{0} is not a legal number",n));
}
return currentNumber;
}
{
int lastNumber=1;
int secondNumber=1;
int currentNumber = 1;
if (n > 0)
{
for (int i = 3; i <= n; i++)
{
currentNumber = lastNumber+secondNumber;
secondNumber = lastNumber;
lastNumber = currentNumber;
}
}
else
{
throw new ArgumentNullException(string.Format ("{0} is not a legal number",n));
}
return currentNumber;
}