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);
}
}
}
}
上面的程序给出了特定字符串的组合。
我无法理解递归的调用流程。我想知道上面递归程序的调用流程。
任何人都可以解释这一点吗?