斐波那契数列的求值问题
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……,从数列的第3项开始,每一项都是前2项的和,即F(n)=F(n-1)+F(n-2)(n>2)。
本文讨论从0开始的斐波那契数列。
常见斐波那契数列的求值:
1.求斐波那契数列的第n项的值
static void Main(string[] args) { Console.WriteLine("第30项的值为:"+Fab(30)); Console.ReadKey(); } static int Fab(int n) { if (n == 1) return 0;
if (n == 2) return 1; return Fab(n - 1) + Fab(n - 2); }
第1项是0,第2项是1,从第3项开始每一项都是前2项的和。
2.求斐波那契数列的前n项
static void Main(string[] args) { int a = 0, b = 1; for (int i = 0; i < 10; i++) { int temp = a; a = b; b = temp + b; Console.Write(temp + " "); } Console.ReadKey(); }
每一次交换产生的中间变量temp即为数列的一个元素。
3.求斐波那契数列的前n项和
static void Main(string[] args) { int a = 0, b = 1, total = 0; for (int i = 0; i < 30; i++) { int temp = a; a = b; b = temp + b; total += temp; } Console.WriteLine("前30项和为:" + total); Console.ReadKey(); }