费式数列的特性式是后面的数字等于前面2个数字的加总
例如,0,1,1,2,3,5,8
一种是用递迴方式如下
static void Main(string[] args) { int number = 6; for (int i = 1; i <= number; i++) { Console.WriteLine(Fibonacc(i).ToString()); } } private static int Fibonacc(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; return Fibonacc(n - 1) + Fibonacc(n - 2); }
另外一种是单纯 for 迴圈的暴力解法
static void Main(string[] args){ int number = 6; for (int i = 1; i <= number; i++) { Console.WriteLine(Fibonacc2(i).ToString()); }} /// <summary> /// 费氏数列 0,1,1,2,3,5,8. /// </summary> /// <param name="n"></param> /// <returns></returns> private static int Fibonacc2(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; int prev = 1; int curr = 1; for (int i = 3; i <= n; i++) { int sum = prev + curr; prev = curr; curr = sum; } return curr; }