输入一个正整数 n,输出 n!的值。 其中 n ! = 1 ∗ 2 ∗ 3 ∗ … ∗ n 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组 A 来表示一个大整数 a,A[0]表示 a 的个位,A[1]表示 a 的十位,依次类推。 将 a 乘以一个整数 k 变为将数组 A 的每一个元素都乘以 k,请注意处理相应的进位。 首先将 a 设为 1,然后乘 2,乘 3,当乘到 n 时,即得到了 n!的值。 输入格式 输入包含一个正整数 n,n<=1000。 输出格式 输出 n!的准确值。用java编译
时间: 2024-03-08 18:46:56 浏览: 94
以下是用 Java 编写的代码,采用高精度计算的方法求出 n! 的值:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] A = new int[10000];
A[0] = 1;
int len = 1;
for (int i = 2; i <= n; i++) {
int c = 0;
for (int j = 0; j < len; j++) {
int t = A[j] * i + c;
A[j] = t % 10;
c = t / 10;
}
while (c != 0) {
A[len++] = c % 10;
c /= 10;
}
}
for (int i = len - 1; i >= 0; i--) {
System.out.print(A[i]);
}
System.out.println();
}
}
```
输入示例:
```
10
```
输出示例:
```
3628800
```
因此,当输入 10 时,输出 3628800,即 10! 的值。
阅读全文