java用do-while求阶乘和
时间: 2023-05-30 20:05:09 浏览: 89
下面是Java代码,使用do-while循环求阶乘和:
```
import java.util.Scanner;
public class FactorialSum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数n:");
int n = input.nextInt();
int i = 1;
int factorial = 1;
int sum = 0;
do {
factorial *= i;
sum += factorial;
i++;
} while(i <= n);
System.out.println("1! + 2! + ... + " + n + "! = " + sum);
}
}
```
首先从控制台读取一个正整数n,然后使用do-while循环计算1!到n!的和。在循环中,定义变量i表示当前阶乘的数值,变量factorial表示当前阶乘的结果,变量sum表示阶乘和。每次循环,先计算当前阶乘的结果,然后将其加到阶乘和中,最后i加1。当i等于n+1时,循环结束,输出阶乘和。
相关问题
用Java的do-while语句写一个从1!到10!的阶乘和
```
public class FactorialSum {
public static void main(String[] args) {
int i = 1;
int factorial = 1;
int sum = 0;
do {
factorial *= i;
sum += factorial;
i++;
} while (i <= 10);
System.out.println("1! + 2! + 3! + ... + 10! = " + sum);
}
}
```
java使用dowhile计算100阶乘
在Java中,利用do-while循环来计算100阶乘可能会有些困难,因为100!是一个非常大的数,超过了long类型的范围(能表示的最大值约等于9.2e18),直接计算会溢出。不过,我们可以借助 BigInteger 类来进行大整数的计算。
这是一个示例,展示如何使用 do-while 循环结合 BigInteger 来计算100的阶乘:
```java
import java.math.BigInteger;
public class Factorial {
public static void main(String[] args) {
BigInteger fact = BigInteger.ONE;
int n = 100;
do {
fact = fact.multiply(BigInteger.valueOf(n));
n--;
} while (n > 0);
System.out.println("100的阶乘是: " + fact);
}
}
```
在这个例子中,我们首先将 fact 初始化为1(BigInteger.ZERO),然后在每次循环中将其乘以 n,同时递减 n,直到 n 降为0为止。最后打印出的结果就是100的阶乘。
注意:实际运行这个程序时,由于数值过大,可能需要一些时间才能显示结果,并且计算过程可能会比较慢。