【发布时间】:2017-02-15 03:18:37
【问题描述】:
我想知道为什么我的递归方法在执行return 语句之后仍然执行。我正在尝试编写一个简单的程序来计算输入的阶乘,但是“4”的阶乘返回“48”,因为它将“2”乘以两次。请在下面找到我的代码。
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int soln=0;
static boolean start = true;
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
int n=sn.nextInt();
System.out.println(multx(n));
}
public static int multx(int n){
if (start){
soln = n;
start = false;
}
while(n>2)
{
n--;
soln = soln*n;
multx(n);
}
return soln;
}
}
为什么会执行return soln,然后又回到multx(n)?
【问题讨论】:
-
我认为你没有得到什么是递归。 stackoverflow.com/questions/8183426/… 检查此答案以在 java 中计算递归