题目:求1+2!+3!+...+20!的和 java
时间: 2023-07-08 21:23:52 浏览: 76
可以用循环来计算每一个阶乘,并将每一个阶乘相加即可。
Java代码如下:
```
public class Main {
public static void main(String[] args) {
long sum = 0;
long factorial = 1;
for (int i = 1; i <= 20; i++) {
factorial *= i;
sum += factorial;
}
System.out.println(sum);
}
}
```
输出结果为:2561327494111820313
相关问题
java题目:求1+2!+3!+…+20!的和
可以使用循环来计算每个阶乘,然后将它们相加。以下是Java代码示例:
```
public class FactorialSum {
public static void main(String[] args) {
long sum = 0;
long factorial = 1;
for (int i = 1; i <= 20; i++) {
factorial *= i;
sum += factorial;
}
System.out.println("The sum of 1! to 20! is " + sum);
}
}
```
输出结果为:
```
The sum of 1! to 20! is 2561327494111820313
```
令 S = 1! + 2! + 3! + ::: + 202320232023!,求S 的末尾 9 位数字。
根据题目,需要求出S = 1! + 2! + 3! + ... + 202320232023!的末尾9位数字。由于题目中的数字非常大,直接计算阶乘会导致溢出,因此需要使用取模运算来避免这个问题。
具体做法是,每次计算阶乘时,都对1000000000取模,然后将结果加到总和中。最后再对总和取模1000000000,得到的结果即为S的末尾9位数字。
以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 2023202320; // 注意,这里需要将n设为2023202320,否则会导致溢出
long temp = 1L;
long sum = 0L;
for(int j=1;j<=n;j++) {
temp = (temp * j) % 1000000000;
sum = (sum + temp) % 1000000000;
}
System.out.print(sum);
}
}
```
阅读全文