斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34...
---百度百科
1 >>>数组 很好理解。
求第a位的数是多少?
第a位在循环中的下标是a-1。所以返回list[a-1];
public static int Fbnq(int a)
{
int[] list = new int[a];
list[] = ;
list[] = ;
for (var i = ; i < a; i++)
{
list[i] = list[i - ] + list[i - ];
}
return list[a - ];
}
2 >>>递归 很简洁,难理解,耗性能。
求第a位的数是多少?
递归有终点。本例终点就是a<=2的时候返回值是。
讲解:例如传入的a是30,求第30位是多少?
30进入函数执行:后边的语句。执行时 她发现需要Fbn1(29)+Fbn1(28),又发现29需要27+28,28需要27+26...... 直到到Fbn1(0)+Fbn1(1)【a<=2时】。函数有了值
然后一路加回去,便求出Fbnq(30).
public static int Fbnq1(int a)
{
return a <= ? : Fbnq1(a - ) + Fbnq1(a - );
}
学习阶段,有错误还望指出,谢谢!