本来今天是休息的,于是上网看看帖子,在百度贴吧回了一个帖子,写的是如何用递归实现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;
}
}
}
其实很简单,这里就不加注释了,浪费空间,说笑了,其实写代码时加注释是个非常好的习惯,希望童鞋可以尽量避免递归。