import java.util.Scanner;
public class CalculateAgain {
public static void main (String[] Args) {
Scanner input = new Scanner(System.in);
long N = input.nextLong();
long K = input.nextLong();
double result = 1;
while ( N > K) {
result*=N;
N--;
}
System.out.printf("%.0f", result);
}
}
我无法打印大工厂号。我一直尝试使用可变结果,但是当我println
时却得到错误的结果。
我也尝试使用BigDecimal,但无法将其转换为long或double。
我是一个初学者-我了解了循环,数组,条件语句。我对方法不了解。
答案 0 :(得分:0)
使用import java.math.BigInteger;
以这种方式尝试,在扫描仪之后。假设我正在使用BigInteger
,则可以根据需要进行更改。
int n = Integer.parseInt(scanner.nextLine());
int k = Integer.parseInt(scanner.nextLine());
BigInteger result = new BigInteger("1");
int range = n - k;
for (int i = range; i > 0; i--) {
result = result.multiply(new BigInteger(String.valueOf(n)));
n--;
}