剑指offer(八)之斐波那契数列
2016-04-17 10:27
507 查看
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
思路分析:
1.如果直接用递归:
public class Solution {
public int Fibonacci(int n) {
if(n<=0){
return 0;
}else if(n==1||n==2){
return 1;
}else{
int x=Fibonacci(n-1)+Fibonacci(n-2);
return x;
}
}
}
发现有时难以再规定的时间内算出,因为递归不能很好地利用重复元素,数据大的时候,用时就多了。
2.用迭代方法
public class Solution {
public int Fibonacci(int n) {
int num1=0,num2=1;
int result=0;
if(n<=0){
return 0;
}else if(n==1){
return 1;
}else{
for(int i=2;i<=n;i++){
result=num1+num2;
num1=num2;
num2=result;
}
}
return result;
}
}
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
思路分析:
1.如果直接用递归:
public class Solution {
public int Fibonacci(int n) {
if(n<=0){
return 0;
}else if(n==1||n==2){
return 1;
}else{
int x=Fibonacci(n-1)+Fibonacci(n-2);
return x;
}
}
}
发现有时难以再规定的时间内算出,因为递归不能很好地利用重复元素,数据大的时候,用时就多了。
2.用迭代方法
public class Solution {
public int Fibonacci(int n) {
int num1=0,num2=1;
int result=0;
if(n<=0){
return 0;
}else if(n==1){
return 1;
}else{
for(int i=2;i<=n;i++){
result=num1+num2;
num1=num2;
num2=result;
}
}
return result;
}
}
相关文章推荐
- ACMer博客瀑布流分析
- 基于javascript实现精确到毫秒的倒计时限时抢购
- 最新不安装百度云管家就可以下载网盘资源的方法及各种浏览器修改JavaScript开关方法
- NodeJs的express模块4.X
- NodeJS + Socket.IO 最终版
- AngularJS中使用的表单验证
- [JSP]解决Maven创建项目失败
- 利用原生JavaScript获取样式的方式小结
- EasyUI Tree 中的Node state属性
- 无刷新 减少服务器负担 jQuery remove方法
- JavaScript之Unicode编码转换小工具
- angularstrap typeahead 处理异步数据
- [Lintcode]Swap Nodes in Pairs
- 剑指offer(七)之二进制中1的个数
- 前端构建和模块化工具-coolie
- AngularJS 最常用的八种功能
- AngularJS ng-repeat下使用ng-model
- css书写顺序
- hdoj 1203 I NEED A OFFER!
- JS组件Bootstrap dropdown组件扩展hover事件