日期:2014-05-20  浏览次数:20795 次

一道面试题!
一列数的规则如下:1、1、2、3、5、8、13、21、34...........求第30位数是多少,请用递归算法实现,C#语言编写

------解决方案--------------------
public int recursive(int index)
{
if (index <= 2)
{
return 1;
}
else
{
return recursive(index - 1) + recursive(index - 2);
}
}
------解决方案--------------------
这题好像我笔试过哦,菲波那契数列
int f(int n)
{
if(n <=2)
return 1;
return f(n-1)+f(n-2);
}

------解决方案--------------------
public int Fibonacci(int n)
{
if (n <= 0) return 0;
if (n <= 2) return 1;
return Fibonacci(n - 2) + Fibonacci(n - 1);
}

------解决方案--------------------
using System; class Test
{
public static unsafe void Main()
{
int* fib = stackalloc int[100];
int* p = fib;
*p++ = *p++ = 1;
for (int i=2; i <100; ++i, ++p)
*p = p[-1] + p[-2];
Console.WriteLine (fib[30]);
}
}