-3
我想知道爲什麼遞歸方法執行後,即使它執行return
語句。我正在嘗試編寫一個簡單的程序來計算輸入的階乘,但「4」的階乘返回「48」,因爲它將「2」乘以兩次。請在下面找到我的代碼。返回語句後執行Java遞歸
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)
?
它被稱爲遞歸:https://en.wikipedia.org/wiki/Recursion – Andremoniy
我認爲你沒有得到什麼是遞歸。 http://stackoverflow.com/questions/8183426/factorial-using-recursion-in-java檢查這個答案計算在java中的遞歸 – Gatusko