c#递归求斐波那契数列第N位数

斐波那契数列因古希腊建筑《伯特农神殿》和雕塑《米罗的维纳斯》上出现的“黄金分割”而闻名,有许多有趣的数学特性。

斐波那契数列由两个 1 开端,其后的每一位数字都是前两位数字之和。譬如 1 和 1 的和为 2,1 和 2 的和为 3,2 和 3 的和为 5,3 和 5 的和为 8……一直这样继续计算下去,就得到下面这样的数列。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

这个数列就是“斐波那契数列”。

计算这个数列中相邻两个数的商值,可以得到如下所示的结果。

1÷1 = 1.00000
2÷1 = 2.00000
3÷2 = 1.50000
5÷3 = 1.66667
8÷5 = 1.60000
13÷8 = 1.62500
21÷13 = 1.61538
34÷21 = 1.61905
55÷34 = 1.61765
89÷55 = 1.61818

可以看到,商值最终慢慢地趋近 1.618。这就是有名的“黄金分割”的由来。

用C#递归算法求斐波那契数列第N位数的算法如下

public int IndexNum(int index){
    if(index==1 || index==2){
      return 1;
    }else{
    return IndexNum(index-2)+IndexNum(index-1);
    }
}

你可能感兴趣的:(随笔)