java 8的表达式之和(类名:Exercise0404) 编写程序计算8+88+888+…前10项之和。 输出: 8+88+888+…前10项和为9876543200
时间: 2024-09-30 21:06:04 浏览: 43
在Java 8中,可以利用Stream API的特性方便地计算这个序列的和。这里我们创建一个名为`Exercise0404`的类,包含一个静态方法`sumOfSequence(int n)`,该方法接受一个整数n作为输入,然后生成并求和从8开始每次递增8的数字序列。
```java
import java.util.stream.IntStream;
public class Exercise0404 {
public static void main(String[] args) {
int sum = sumOfSequence(10);
System.out.println("8+88+888+...前" + sum + "项和为" + sum);
}
// 使用IntStream的rangeClosed方法生成范围内的整数流,然后累加求和
public static long sumOfSequence(int n) {
return IntStream.rangeClosed(8, 8 * (1 << (n - 1))) // 1 << (n - 1) 表示2^(n-1),即最后一个数字是8乘以2^(n-1)
.mapToLong(i -> i) // 将每个元素转换为long类型以便处理大数
.sum();
}
}
```
在这个程序中,`rangeClosed`方法生成一个闭包区间,从8到8乘以2^(n-1),然后通过`mapToLong`将每个数映射回它自身,最后调用`sum`计算总和。运行此程序,你会得到预期的结果。
阅读全文