我使用if语句编写了一个斐波那契数列,但是该脚本在第40-41学期开始显着放慢速度,每次计算花费10秒钟以上。有人可以指出我的代码可以优化的地方吗?预先感谢!
public static long fibonacci(int i) {
if (i <= 1) {
return i;
} else if (i == 2) {
return 1;
} else {
return fibonacci(i - 1) + fibonacci(i - 2);
}
}
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int i = 1;
System.out.print("Index: ");
int lim = Integer.parseInt(reader.nextLine());
while (i <= lim) {
System.out.println(i + ": " + fibonacci(i));
i++;
}
}