编写一个程序来计算给定的N和 K.in Java - 溢出问题的 N! / K!


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 但我不能将其转换为长整型或双倍型。

我是一个初学者 - 我已经学习了循环、数组、条件语句。我对方法一无所知。

使用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--;
}

最新更新