Java学习 - 递归转迭代完成Fibonacci
2012-05-01 00:28
267 查看
本来今天是休息的,于是上网看看帖子,在百度贴吧回了一个帖子,写的是如何用递归实现Fibonacci数列,回完后我就想用递归做这个简单的事好像有点浪费,于是写了这篇文章来实现如何用迭代代替递归。
首先介绍一下Fibonacci数列,其实很简单的1、1、2、3、5、8、13,除第一个和第二个数,第n个数是前两个数的和,这么直白应该都懂了吧!
public class method{
public static void main(String args[]){
System.out.println(test(5));
}
public static long test(int index){
if(index<1){
System.out.println("invalid parameter!!!!!!");
return 0;
}
if(index == 1||index == 2){
return 1;
}else{
long f1 = 1L;
long f2 = 1L;
long f = 0L;
for(int i=0;i<index-2;i++){
f = f1 + f2;
f1 = f2;
f2 = f;
}
return f;
}
}
}
其实很简单,这里就不加注释了,浪费空间,说笑了,其实写代码时加注释是个非常好的习惯,希望童鞋可以尽量避免递归。
首先介绍一下Fibonacci数列,其实很简单的1、1、2、3、5、8、13,除第一个和第二个数,第n个数是前两个数的和,这么直白应该都懂了吧!
public class method{
public static void main(String args[]){
System.out.println(test(5));
}
public static long test(int index){
if(index<1){
System.out.println("invalid parameter!!!!!!");
return 0;
}
if(index == 1||index == 2){
return 1;
}else{
long f1 = 1L;
long f2 = 1L;
long f = 0L;
for(int i=0;i<index-2;i++){
f = f1 + f2;
f1 = f2;
f2 = f;
}
return f;
}
}
}
其实很简单,这里就不加注释了,浪费空间,说笑了,其实写代码时加注释是个非常好的习惯,希望童鞋可以尽量避免递归。
相关文章推荐
- java程序员需要学习哪些技术,才可以单独完成项目?
- java学习之路----递归
- File类递归练习+JAVA学习笔记-DAY23
- Java中的迭代与递归
- java学习笔记.08——递归
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
- 算法学习 八皇后问题的递归实现 java版 回溯思想
- Java 学习笔记 (10) - Java 函数的递归调用
- Java学习笔记91. 对于List类集的迭代 -- 使用ListIterator
- 20171022java学习iterator java 迭代遍历
- PHP用迭代方法和递归方法创建级联目录(学习用,开发中应该写mkdir('./a/b/c/d/e',0777,true);)
- java计算参数目录大小的递归和迭代实现
- 让学习也scrum,第一次迭代完成
- JAVA递归学习笔记
- 关于java的递归写法,经典的Fibonacci数的问题
- 【幻化万千戏红尘】qianfengDay08-java基础学习:修饰符、重写、继承、抽象、递归、final
- java使用递归迭代实现流程图展示(仅供参考)
- 汉诺塔:非递归,非堆栈,使用C语言完成。希望多多交流,学习。
- java8学习之内部迭代与外部迭代本质剖析及流本源分析
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习