经典算法详解(1)斐波那契数列的n项
斐波那契数列是一个常识性的知识,它指的是这样的一个数列,它的第一项是1,第二项是1,后面每一项都是它前面两项的和,如:1,1,2,3,5,8,13,21,34,55,89,144,233……
说明:由于通过递推方式效率低,系统开销大,空间复杂度高,故不考虑。
1 /*斐波那契数列:第一项和第二项为1,后面各项是其前面两项之和*/ 2 /*编写一个函数,输入整数n,求该项的值*/ 3 4 #include<iostream> 5 6 using namespace std; 7 8 int fibonacci(int n) { 9 if (n < 0){ 10 return -1; 11 } 12 if ((n == 1 )||( n ==2)) { 13 return 1; 14 } 15 else { 16 int fib_1 = 1,fib_2=1,fib_3; 17 for (int i = 3; i <= n; i++) { 18 fib_3 = fib_1 + fib_2; 19 fib_1 = fib_2; 20 fib_2 = fib_3; 21 } 22 return fib_3; 23 } 24 } 25 26 int main(int argc, char *argv[]) { 27 cout << "please input n" << endl; 28 int n; 29 cin >> n; 30 cout << "The reslut: " << fibonacci(n) << endl; 31 32 getchar(); 33 getchar(); 34 return 0; 35 }