java计算 Result=1!+2!+3!+…+10!
时间: 2024-01-10 19:02:28 浏览: 40
以下是使用Java计算1!+2!+3!+...+10!的示例代码:
```java
public class FactorialSum {
public static void main(String[] args) {
int n = 10;
int sum = 0;
for (int i = 1; i <= n; i++) {
int factorial = 1;
for (int j = 1; j <= i; j++) {
factorial *= j;
}
sum += factorial;
}
System.out.println("Result: " + sum); // 输出:Result: 4037913
}
}
```
这段代码使用了两个嵌套的循环,外层循环用于遍历1到10,内层循环用于计算每个数的阶乘。最后将每个阶乘的结果累加到sum变量中,并输出最终的结果。
相关问题
用Java写1、编写一个函数计算Sum=1!+2!+3!+4!+5!
以下Java代码实现:
```java
public static int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static int calculateSum() {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += factorial(i);
}
return sum;
}
public static void main(String[] args) {
int result = calculateSum();
System.out.println("Sum = " + result);
}
```
运行结果为:Sum = 153。
用Java设计一个多线程程序,求p=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!,用十个线程分别求1!、2!...10!,在主线程中求这十个阶层的和。
以下是Java设计的多线程程序,用于计算p=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!:
```java
public class FactorialThread extends Thread {
private int num;
private BigInteger result;
public FactorialThread(int num) {
this.num = num;
}
public BigInteger getResult() {
return result;
}
@Override
public void run() {
result = factorial(num);
}
private BigInteger factorial(int n) {
BigInteger res = BigInteger.ONE;
for (int i = 2; i <= n; i++) {
res = res.multiply(BigInteger.valueOf(i));
}
return res;
}
}
public class MainThread {
public static void main(String[] args) throws InterruptedException {
FactorialThread[] threads = new FactorialThread[10];
BigInteger sum = BigInteger.ZERO;
// 创建10个线程,分别计算1!到10!
for (int i = 0; i < threads.length; i++) {
threads[i] = new FactorialThread(i + 1);
threads[i].start();
}
// 等待所有线程执行完毕
for (FactorialThread thread : threads) {
thread.join();
sum = sum.add(thread.getResult());
}
System.out.println("1!+2!+3!+...+10! = " + sum);
}
}
```