首页 > 代码库 > 递归求斐波那契数

递归求斐波那契数

斐波那契数列主要思想是利用前两个数求和算出下一个数,利用函数的递归思想,F(n)=F(n-1)+F(n-2),F(n)先搁置,计算F(n-1),要计算F(n-1)就要先计算F(n-2)和F(n-3),依次递归下去,直到第一第二位数,这两个数是已知的,这样就可以回去一层一层的算出F(3)、F(4)、F(5)....F(n-2)、F(n-1),最后得到F(n)的值。

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data; 6 using System.Data.SqlClient; 7 //递归算法求斐波那契数列 8 namespace test3 9 {10     class Program11     {12         static void Main(string[] args){13             long i=Convert.ToInt64(Console.ReadLine());//读入位数14             Console.WriteLine("第{0}位斐波那契数为:{1}",i, Foo(6));15         }16         public static int Foo(int i) {17             if (i <= 0) return 0;18             else if (i > 0 && i <= 2) return 1;19             else return Foo(i - 1) + Foo(i - 2);20         }21     }22 }

PS:Console.Read()用来读取输入的第一个字符,Console.ReadLine()用来读取一行字符串,Console.ReadKey()也是用来读取第一个字符,但不需要敲回车键就能继续执行代码。另外不管是Read()或Write()输入输出的都是字符型,数字需要用Convert()函数转换得来。

递归求斐波那契数