java实现斐波那契数列
第一种:
private static void getFib(long n) {
int f = 0; int g = 1;
for (int i = 0; i <= n; i++) {
System.out.println(f);
f = f + g;
g = f - g;
}
}
解析:
0,1,1,2,3,5,8,13
比如 f=3,那么g应该等于2 f除了一开始的0特殊情况其余应该都是g的下一位数。g为f的前一位数
特殊情况 f=0时, 因为0+1 和 1+0时都为1 所以不影响
第二种:
public class Fibonacci {
int x = 1;
Stream<Integer> numbers() {
return Stream.iterate(0, i -> {
int result = x + i;
x = i;
return result;
});
}
public static void main(String[] args) {
new Fibonacci().numbers().skip(0).limit(10).forEach(System.out::println);
}
}
[1]: The textbook Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
[2]: onjava8 by Bruce Eckel (又名Java编程思想第五版)