フィボナッチ数を計算するコードを書いています。このコードで、フィボナッチ数列の最初の n 個の数を生成できます。
Stream.generate(new Supplier<Long>() {
private long n1 = 1;
private long n2 = 2;
@Override
public Long get() {
long fibonacci = n1;
long n3 = n2 + n1;
n1 = n2;
n2 = n3;
return fibonacci;
}
}).limit(50).forEach(System.out::println);
このメソッドは、このメソッドに渡された要素の数を保持する をlimit
返します。フィボナッチ数がある値に達しStream
た後、 の生成を停止したい。Stream
つまり、1000 未満のすべてのフィボナッチ数をリストしたい場合は、 を使用できませlimit
ん。フィボナッチ数がいくつあるか分からないからです。
ラムダ式を使用してこれを行う方法はありますか?