话说 递归算法真的好慢。递归算法被注释起来,用的是循环。
import java.util.Scanner;
public class FibonacciRow {
public static void main(String[] args) {
int y;
Scanner scan = new Scanner(System.in);
y = scan.nextInt();
f(y);
//System.out.println(f(y));
}
public static long f(int y) {
//if(n == 1 || n == 2){
// return 1;
//}else{
// return f(n - 1) + f(n - 2);
long f1 = 1L;
long f2 = 1L;
long f = 1L;
System.out.println("第1个数是:" + f);
if (y > 1) {
System.out.println(" 第2个数是:" + f);
for (int i = 0; i < y - 2; i++) {
f = f1 + f2;
System.out.println(" 第" + (i + 3) + "个数是:" + f);
f1 = f2;
f2 = f;
}
}
return f;
}
}
本文介绍了一种使用循环而非递归的方式计算斐波那契数列的方法,这种方法提高了计算效率并避免了递归带来的性能问题。通过一个Java程序示例展示了如何实现这一算法。
8万+

被折叠的 条评论
为什么被折叠?



