gpt4 book ai didi

java - 如何流式传输一系列 BigIntegers?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:55 26 4
gpt4 key购买 nike

你好,我目前有这段代码可以正常工作

public static BigInteger factorial(BigInteger n) {
BigInteger sum = BigInteger.ONE;
for (BigInteger i = BigInteger.ONE; i.compareTo(n) <= 0; i = i.add(BigInteger.ONE)) {
sum = sum.multiply(i);
}
return sum;
}

我想要实现的是将其转换为 Stream<BigInteger>然后这样写

public static BigInteger factorial(BigInteger n) {
return getBigIntegerStream(n).reduce(BigInteger.ONE, BigInteger::multiply);
}

所以我的问题是如何获得 Stream<BigInteger>类似于我如何声明 IntStream

IntStream.range(1, myInt);

最佳答案

等同于

Stream.iterate(BigInteger.ONE, i -> i.add(BigInteger.ONE))
.takeWhile(i -> i.compareTo(end) < 0)

end 是一个 BigInteger

Stream.iterate 将创建一个无限流,从 1 开始并不断加 1。takeWhile 将在满足条件后停止流。

关于java - 如何流式传输一系列 BigIntegers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56967792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com