java中1+(1+2)+(1+2+3)+...+(1+2+3+...+n)有3种解法,解法1是采用两重迭代,依次求出(1+2+3+...+i)后累加;解法2是采用一重迭代,利用i(i+1)/2求和后再累加;解法3是直接利用n(n+1)(n+2)/6求和。
时间: 2024-03-31 10:29:42 浏览: 15
解法1:采用两重迭代,依次求出(1+2+3+...+i)后累加。
代码示例:
```java
int sum = 0;
for (int i = 1; i <= n; i++) {
int tempSum = 0;
for (int j = 1; j <= i; j++) {
tempSum += j;
}
sum += tempSum;
}
```
解法2:采用一重迭代,利用i(i+1)/2求和后再累加。
代码示例:
```java
int sum = 0;
int tempSum = 0;
for (int i = 1; i <= n; i++) {
tempSum += i;
sum += tempSum;
}
```
解法3:直接利用n(n+1)(n+2)/6求和。
代码示例:
```java
int sum = n * (n + 1) * (n + 2) / 6;
```
相关问题
java编程求1+3+5+...+n
以下是两种Java编程求1+3+5+...+n的例子:
1.使用递归思想完成1+3+5+...+n的求和算法
```java
public class SumOfOddNumbers {
public static void main(String[] args) {
int n = 10; // 假设n为10
int sum = sumOfOddNumbers(n);
System.out.println("1+3+5+...+" + n + "的和为:" + sum); // 输出:1+3+5+...+10的和为:25
}
public static int sumOfOddNumbers(int n) {
if (n == 1) {
return 1;
} else {
return n % 2 == 0 ? sumOfOddNumbers(n - 1) : sumOfOddNumbers(n - 2) + n;
}
}
}
```
2.使用一般for循环来完成1+3+5+...+n的求和算法
```java
public class SumOfOddNumbers {
public static void main(String[] args) {
int n = 10; // 假设n为10
int sum = 0;
for (int i = 1; i <= n; i += 2) {
sum += i;
}
System.out.println("1+3+5+...+" + n + "的和为:" + sum); // 输出:1+3+5+...+10的和为:25
}
}
```
Java递归求和1+2+3+...+n
可以使用Java递归来求解1到n的和。代码如下:
```java
public class Main {
public static void main(String[] args) {
int n = 10;
int sum = sumOfNums(n);
System.out.println("1到" + n + "的和为:" + sum);
}
public static int sumOfNums(int n) {
if (n == 1) {
return 1;
}
return n + sumOfNums(n - 1);
}
}
```
在这个代码中,我们定义了一个`sumOfNums`函数,这个函数使用递归的方式来求解1到n的和。当n等于1时,递归终止,返回1。否则,递归调用`sumOfNums(n - 1)`来求解n-1的和,然后将n加上这个和,得到1到n的和。