public class test { public static void main(String[] args) { f(3,3); } public static void f(int n,int k){ if(n==0||k==0) return ; if(n>0){ f(n-1,k); System.out.println("n=="+n+" k=="+k); } if(k>0){ f(n,k-1); System.out.println("k=="+k+" n=="+n); } } }
运行结果如下:
n==1 k==3
n==1 k==2
n==1 k==1
k==1 n==1
k==2 n==1
k==3 n==1
n==2 k==3
n==1 k==2
n==1 k==1
k==1 n==1
k==2 n==1
n==2 k==2
n==1 k==1
k==1 n==1
n==2 k==1
k==1 n==2
k==2 n==2
k==3 n==2
n==3 k==3
n==1 k==2
n==1 k==1
k==1 n==1
k==2 n==1
n==2 k==2
n==1 k==1
k==1 n==1
n==2 k==1
k==1 n==2
k==2 n==2
n==3 k==2
n==1 k==1
k==1 n==1
n==2 k==1
k==1 n==2
n==3 k==1
k==1 n==3
k==2 n==3
k==3 n==3