java请用多种方法写出求 1 到 100 的自然数累加和程序,并比较各种写法的特点(至少写四种,提示:for循环、while循环、do while循环、API、等差数列公式、递归)。
时间: 2024-09-29 14:03:45 浏览: 37
matlab求1-N自然数累加和
在Java中,有多种方法可以计算从1到100的自然数累加和:
1. **For循环**:
```java
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("累加和: " + sum);
```
特点:简洁明了,适用于简单迭代操作。
2. **While循环**:
```java
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("累加和: " + sum);
```
特点:结构类似,但可能需要额外更新计数变量。
3. **Do-While循环**:
```java
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 100);
System.out.println("累加和: " + sum);
```
特点:无论条件是否满足,都会执行一次循环体,再判断是否继续。
4. **等差数列公式**:
```java
int n = 100;
int firstTerm = 1;
int commonDifference = 1;
int sum = (n * (firstTerm + n * commonDifference)) / 2;
System.out.println("累加和: " + sum);
```
特点:直接应用数学公式,适用于已知首项和公差的情况。
5. **递归**:
```java
public static int factorialSum(int n, int acc = 0) {
if (n == 0 || n == 1)
return acc;
else
return factorialSum(n - 1, acc + n);
}
int sum = factorialSum(100);
System.out.println("累加和: " + sum);
```
特点:通过函数自身调用解决,适合问题具有自相似性,但可能导致栈溢出问题,效率较低。
阅读全文