public class Main {
public static int multiply(int z) {
if(z > 0) {
return z * multiply(z - 1);
}else{
return 0;
}
}
public static void main(String[] args) {
int answer = multiply(10);
System.out.println(answer);
}
}
我在运行此代码时遇到了一些问题,但是当我尝试使用附加功能时它确实有效
回答1
正如https://stackoverflow.com/questions/72293958/how-can-i-correct-this-code-to-compute-the-factorial-of-10-using-java/72293993#comment127720757_72293958 所述,只需在 if 语句中将 0 更改为 1 并在 else 语句中返回 1。这样,你就不会在最后乘以 0。
例如:
public static int multiply(int z) {
if(z > 1) {
return z * multiply(z - 1);
}else{
return 1;
}
}