常见的方法
private static int Fib1(int n)
{
if (n==1||n==2)
{
return 1;
}
return Fib1(n-2)+Fib1(n-1);
}
但是这个方法在n>50之后,执行的时间将会无限增长。。。。。
看下面这个方法:在网上看到的大神写的。。。。。
private static ulong Fib(int n)
{
ulong[] fib = new ulong[n];
fib[0] = 1;
fib[1] = 1;
for (int i = 2; i < n; i++)
{
fib[i] = fib[i - 2] + fib[i - 1];
}
return fib[n - 1];
}
这个方法即便n特别大,,,也很快计算出结果
对比一下两个图(时间是毫秒)