我正在尝试实现一个Java代码,该代码的n,k是整数(不能为long类型),用于计算n的结果! %k代表任何n,k。例如,对于n = 18和k = 71,我想得到56,而不是-18。
我认为该算法应该通过模块数学工作,因为结果是由n = k * m + r(r是除法)建立的。 有什么想法如何用整数类型实现此算法?
下面是我的代码,正在运行,但对于任何n,k均无效:
int n = scanner.nextInt();
int k = scanner.nextInt();
int result = 1;
//n!
while (n!=0){
result = result * n;
n=n-1;
}
System.out.println(result % k);