有的java算法题目不是很看得懂,尤其实递归算法,我不知道怎么弄懂,希望哪位好心人,帮帮我呀!!
我是个java初学者,想弄懂递归到底怎么回事,现在感觉递归真的不是这么简单呀!!!QQ: 420421951
现在我列举一题:
static int   a[]=new int[100]; 
public static void  comb(int m,int k) {  //5选3
   int i,j; 
   for (i=m;i>=k;i--)  {
     a[k]=i; 
     System.out.println("a["+k+"]"+a[k]);
      if (k>1){ 
         comb(i-1,k-1); 
      }
    
      else {
           for (j=a[0];j>0;j--) 
            System.out.printf("%4d",a[j]); 
            System.out.println(); 
      } 
   } 

 public static void main(String args[]) {
      a[0]=3;
      comb(5,3); 
     //[0]=4;
      //comb(10,4);
 } 
}

解决方案 »

  1.   

    递归简单来说就是自己调用自己的过程。 比如说下面这个类里的方法就是会一直调用它自己  将给的m一直分解下去,一直分解到符合“出口”的条件才结束调用  public class Fibonacci {
    public static int fibonacci(int m) {
    if (m == 0 || m == 1) {←这里是“出口”
    return m;
    } else
    return fibonacci(m - 1) + fibonacci(m - 2);
    }
    }
      

  2.   

    递归是基本的逻辑运算推理思想。例如求K!。如果知道(K-1)!的结果,那么K*(K-1)!的结果就是K!的值。依次类推,那么分解到1!=1,0!=1就可以回溯求任意K的K!值了。