package hxy.bytecode.algorithm.fibonacci;
public class Fibonacci {
// 斐波那契有四种实现方法。递归,迭代,数组,队列
// 百度斐波那契是从1开始的
Fibonacci(int n) {
// 迭代最高效,时间复杂度O(n),空间复杂度O(1)
if (n <= 0) {
System.out.println("请输入非负数");
return;
}
int a1 = 1;
int a2 = 1;
int a3 = 0;
if (n == 0 && n == 1) {
System.out.println(1);
} else {
// 迭代是最高效的,时间复杂度是n与空间复杂度是1
System.out.print(1 + "\t" + 1 + "\t");
for (int i = 1; i < n; i++) {
a3 = a1 + a2;
System.out.print(a3 + "\t");
a1 = a2;
a2 = a3;
}
// System.out.println(a3);
}
}
public static void main(String[] args) {
// 爬楼梯问题也是斐波那契
//从0开始计数。
new Fibonacci(8);
}
}
运行结果:
可以看看爬楼梯问题,一个斐波那契的实际场景。