LintCode--斐波纳契数列
来源:互联网 发布:西门子200plc编程电缆 编辑:程序博客网 时间:2024/05/16 14:16
问题描述:
查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:
- 前2个数是 0 和 1 。
- 第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
算法:
方法一:这种算法,运算次数最少,且相对于数组不受数组大小的限制
public static int fibonacci1(int n){
if(n==1){
return 0;
}
if(n==2){
return 1;
}
int a=0;
int b=1;
int result=0;
for(int i=3;i<=n;i++){
result=a+b;
a=b;
b=result;
}
return result;
}
方法二:采用数组存储:
public static int fibonacci2(int n){
int[] result=new int[100];
result[0]=0;
result[1]=1;
for(int i=2;i<result.length;i++){
result[i]=result[i-1]+result[i-2];
}
return result[n-1];
}
方法三:采用递归算法:这种算法,虽然能编译出结果,但耗时很长
注:虽然递归算法耗时比较长,但这种算法思想很重要;
public static int fibonacci3(int n){
if(n==1){
return 0;
}
if(n==2){
return 1;
}
return fibonacci3(n-2)+fibonacci3(n-1);
}
- LintCode--斐波纳契数列
- 【Lintcode】斐波纳契数列
- 【Lintcode】斐波纳契数列
- LintCode【入门】斐波纳契数列
- lintcode-入门-斐波纳契数列
- LintCode(斐波纳契数列)!
- Lintcode斐波纳契数列
- 斐波纳契数列-LintCode
- LintCode-第366题 斐波纳契数列
- 【LintCode-366】斐波纳契数列 (Java实现)
- LintCode 查找斐波纳契数列中第 N 个数
- LintCode 第366题 斐波纳契数列 【枚举法】
- LintCode之斐波那契数列
- lintcode斐波那契数列
- (lintcode)第336题斐波那契数列
- Lintcode:斐波那契数列
- 【LintCode】查找斐波那契数列中的N个数
- lintcode爬楼梯(斐波那契数列)
- 边缘检测综合-Canny算子,Sobel算子,Laplace算子,Scharr滤波器
- cordova开发环境搭建
- nc根据帐套名称设置默认数据源
- 学习windows驱动(回顾1)
- js选择除了自身的其他元素
- LintCode--斐波纳契数列
- C/C++语言编码规范
- 《Android开发开放平台》
- Android开发——对sdcard扩展卡文件操作
- MSSQL CharIndex()用法
- ios后台执行不被kill的方法
- 一个非常不错的纯源码“PDF转换swf”完全脱离安装第三方插件,直接使用java调用Flash api将PDF转换成图片,在将图片转换成swf。
- 欢迎使用CSDN-markdown编辑器
- window.showModelessDialog 之间传值