gpt4 book ai didi

java - 如何使用 Java 流求除数之和?

转载 作者:行者123 更新时间:2023-12-02 07:43:25 25 4
gpt4 key购买 nike

我正在尝试将此函数转换为使用 Java 8 新语法。希望它会减少行数,也许会让事情变得更清晰。

public int divisorSum(int n) {
int sum = 0;
for(int i = 1; i <= n; i ++) {
if(n % i == 0) {
sum = Integer.sum(sum, i);
}
}
return sum;
}

我尝试过这个:

IntStream.range(0, n).forEach(i -> ... )

但是根据 this post 的评论作者:Tezra 显然,不建议使用 lambda 进行循环。

最佳答案

这是 Java 8 流实现:

public int divisorSum(int n) {
return IntStream.rangeClosed(1, n).filter(i -> n % i == 0).sum();
}

请注意,rangeClosed(如您的示例)包含 nrange() 排除第二个参数(它最多只包含 n-1)。

关于java - 如何使用 Java 流求除数之和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61086189/

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