经典算法详解(1)斐波那契数列的n项

简介: 斐波那契数列是一个常识性的知识,它指的是这样的一个数列,它的第一项是1,第二项是1,后面每一项都是它前面两项的和,如:1,1,2,3,5,8,13,21,34,55,89,144,233……说明:由于通过递推方式效率低,系统开销大,空间复杂度高,故不考虑。

斐波那契数列是一个常识性的知识,它指的是这样的一个数列,它的第一项是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 }

 

相关文章
|
7月前
|
算法
【算法优选】 动态规划之斐波那契数列模型
【算法优选】 动态规划之斐波那契数列模型
|
4月前
|
存储 算法
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
本文通过《趣学算法》中的斐波那契数列问题,探讨了算法的递归实现、时间复杂度分析,并展示了如何通过迭代和优化存储空间来改进算法,最终将时间复杂度从指数级降低到线性级,并将空间复杂度从线性级降低到常数级。
98 0
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
|
6月前
|
算法
【超直白】算法:斐波那契数列
【超直白】算法:斐波那契数列
【超直白】算法:斐波那契数列
|
6月前
|
算法 Java 测试技术
斐波那契数列的四种实现算法
斐波那契数列的四种实现算法
136 3
|
6月前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
6月前
|
算法
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
493 1
|
6月前
|
存储 机器学习/深度学习 算法
数据结构和算法学习记录——空间复杂度的计算(冒泡排序、阶乘递归、斐波那契数列递归、常见复杂度对比、栈帧、栈溢出)
数据结构和算法学习记录——空间复杂度的计算(冒泡排序、阶乘递归、斐波那契数列递归、常见复杂度对比、栈帧、栈溢出)
52 0
|
7月前
|
算法
算法沉淀 —— 动态规划篇(斐波那契数列模型)
算法沉淀 —— 动态规划篇(斐波那契数列模型)
64 0
|
7月前
|
算法
算法修炼-动态规划之斐波那契数列模型
算法修炼-动态规划之斐波那契数列模型
|
自然语言处理 算法 Java
【趣学算法】Day1 算法简介+斐波那契数列
【趣学算法】Day1 算法简介+斐波那契数列
75 0