-3
return
文を実行した後でも、私の再帰メソッドがなぜ実行されるのかを知りたいと思います。私は入力の階乗を計算する簡単なプログラムを書こうとしていますが、 "4"の階乗は "2"を2度乗算するので "48"を返します。以下の私のコードを見つけてください。return文の後に実行する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でrecursinを計算するためのこの答えをチェックする – Gatusko