import java.io.*;
class combination
{
static int cntr = 0;
public static void main(String args[]) throws IOException
{
combination call = new combination();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a String : ");
String n = br.readLine();
call.comb("",n);
System.out.println("Number of combinations are : "+cntr);
}
public void comb(String beg, String end) throws IOException
{
if (end.length()<=1)
{
cntr++;
System.out.println(beg+end);
}
else
{
for (int i=0;i<end.length();i++)
{
String n = end.substring(0,i)+end.substring(i+1);
comb(beg + end.charAt(i),n);
}
}
}
}
上記のプログラムは、特定の文字列の組み合わせを提供します。
再帰のコール フローを理解できません。上記の再帰プログラムの呼び出しの流れを知りたいです。
誰でもこれを説明できますか?