斐波那契数列之递归、循环
2016-03-02 08:37
405 查看
//递归 recursive int AddFrom1ToN_recursive(int n){ //if (n >= 1){ // return n + AddFrom1ToN_recursive(n - 1); //} //else{ // return 0; //} return n <= 0 ? 0 : n + AddFrom1ToN_recursive(n - 1); } //循环 circulation int AddFrom1ToN_circulation(int n){ int sum = 0; for (int i = 1; i <= n; i++){ sum += n; } return sum; } /* 斐波那契数列的第N项 要求输入一个整数n,输出斐波那契数列的第n项。 */ //解法一,递归,存在严重的重复计算,效率极低。时间复杂度以 n的指数 方式递增 int Fibonacci1(int n){ if (n <= 0){ return 0; } else if (n == 1){ return 1; } else{ return Fibonacci1(n - 1) + Fibonacci1(n - 2); } } //面试官期待的使用算法,非递归,从下往上 计算,时间复杂度为O(n). int Fibonacci2(int n){ if (n <= 0){ return 0; } else if (n == 1){ return 1; } else{ //n>=2 int n1 = 0; int n2=1; int sum = 0; for (int i = 2; i <= n; i++){ sum = n1 + n2; n1 = n2; n2 = sum; } return sum; } }
相关文章推荐
- 存储过程2
- js格式化数字 金额按千位逗号分隔
- 重画了一下网络设备接口图
- 关于引用PagerSlidingTabStrip无法引用的问题
- 利用@media screen实现网页布局的自适应
- jvm高级特性整理
- JS控制浏览器全屏
- Android学习笔记之(一)开发环境搭建
- extjs 中的afterRender, onDestroy等函数什么时候调用啊
- n位数字的全排列
- question_006-JAVA之获取中文字母的首地址???
- 高效能人士的七个习惯----再看一遍,新年再次实践,2016年宣言
- hdu 4193 单调队列
- cocos2dx 锚点的位置设置
- Android - Daydream 互动屏保
- CSC8002 音频IC调试笔记
- hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
- 方法的标签_With携带
- 【杭电】[2091]空心三角形
- Mac下新安装的MySQL无法登陆root用户的解决方法