我是Java新手。我尝试对阶乘类进行编程,并且可以使用直到12号,但是当我输入13时,它将返回一个非常奇怪的结果,例如负数。
package thinkjava;
public class MyFactorial {
public static void printMessage(int x, int resultado) {
System.out.println("n = " + x + ", con el resultado " + resultado + ".");
}
public static void myFactorial(int n, int resultado) {
int resultado1;
if (n - 1 == 0 || n == 0 || n == 1) {
resultado1 = resultado;
printMessage(n, resultado1);
} else {
resultado1 = resultado * n;
printMessage(n, resultado1);
myFactorial((n - 1), resultado1);
}
}
public static void main(String[] args) {
myFactorial(13, 1);
}
}
奇怪的结果:
n = 4, con el resultado 1037836800.
n = 3, con el resultado -1181456896.