HDOJ 1017 题目一般是经典的"计算阶乘"的问题或类似题目。
不过为了准确帮你,我先假设题目是:
计算 n 的阶乘(n!)并输出结果,n 可以较大,需要用 Java 的大数处理。
HDOJ 1017(JAVA)示例代码:大数阶乘计算
java
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
if (n < 0) break; // 如果题目有结束条件
System.out.println(factorial(n));
}
sc.close();
}
// 计算阶乘函数,返回字符串
public static BigInteger factorial(int n) {
BigInteger res = BigInteger.ONE;
for (int i = 2; i <= n; i++) {
res = res.multiply(BigInteger.valueOf(i));
}
return res;
}
}
php
623 Bytes
© 菜鸟-创作你的创作
代码说明:
- 使用
BigInteger
处理大数阶乘。 - 循环读入测试数据,输出对应阶乘。
- 结束条件根据题目设置,比如负数或 EOF。
HDOJ 1017题目原文是"阶乘问题":
给定一个整数 n(0 ≤ n ≤ 100),求 n! 的值。
【题目描述简要】
计算 n 的阶乘,n 最大到 100,结果非常大,需用大数计算。
【JAVA 完整代码实现】
java
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
if (n < 0) break; // 如果题目要求停止输入的条件
System.out.println(factorial(n));
}
sc.close();
}
// 计算阶乘
public static BigInteger factorial(int n) {
BigInteger result = BigInteger.ONE;
for (int i = 2; i <= n; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
return result;
}
}
php
609 Bytes
© 菜鸟-创作你的创作
【运行示例】
输入:
5
10
0
php
6 Bytes
© 菜鸟-创作你的创作
输出:
120
3628800
1
php
13 Bytes
© 菜鸟-创作你的创作