java求1+2+3+4+……n的和
时间: 2023-11-15 14:05:37 浏览: 103
这是一个经典的求和问题,可以使用循环或递归来解决。下面是使用Java递归求和1+2+3+...+n的源代码:
```
public int sum(int n) {
if (n == 1) {
return 1;
}
return n + sum(n - 1);
}
```
这个方法使用了递归来计算1到n的和。当n等于1时,返回1;否则,返回n加上n-1的和。这个方法的时间复杂度为O(n),空间复杂度为O(n)。
相关问题
求1+2+3+4+5……+n
以下是一种不使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句的方法来求1+2+3+...+n的例子:
```java
public class Solution {
public int Sum_Solution(int n) {
int sum = n;
boolean flag = (n > 0) && ((sum += Sum_Solution(n - 1)) > 0);
return sum;
}
}
```
这个方法使用了递归和短路运算符来实现。当n为0时,递归停止,返回0;当n大于0时,flag为true,递归继续,sum加上递归结果;当n小于0时,flag为false,递归停止,返回0。最终返回sum即可。
求1!+2!+……+n!
以下是两种解决方法:
1.使用Java语言求解1!+2!+……+n!
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long sum = 0;
long jec = 1;
for (int i = 1; i <= n; i++) {
jec *= i;
sum += jec;
}
System.out.println(sum);
}
}
```
2.使用C语言求解1!+2!+……+n!
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
long sum = 0;
long jec = 1;
for (int i = 1; i <= n; i++) {
jec *= i;
sum += jec;
}
printf("%ld", sum);
return 0;
}
```
阅读全文