在本函数里调用本函数
比如void a(){
 a();
}
递归里最好有能够跳出递归的条件语句,要不然等死哦

解决方案 »

  1.   

    递归最好的解释方法不是走代码,一行一行
    而是走数据,一步步。
    一般的递归都是用可以用这样的公式来总结
    T(n)=C+k*T(n-1);
      

  2.   


    public static long function(long i) {
        if(0 > i) {
            return 0;                    //如果i<0,返回0,退出
        }
        if(0 == i || 1 == i) {
            return 1;                    //如果i=1 or i =0, 返回1,退出(0和1的阶乘都是1)
        }else {
            return i * function(i-1);    //计算i*function(i-1)的结果,并返回(数学上n的阶乘就是当n>=2时f(n) = n * f(n-1))
        }
    }
    明白
      

  3.   

    最简单的就是连+了
    public int sum(int n) {
       
    if(n == 0){
    return n;
    }else {
      return n+sum(n-1);
    }
    }
      

  4.   

    不是循环,循环的定义是 for , while,  while do 语句
    函数调用自己才能叫递归  
      

  5.   


    import java.util.*;
    public class Test {
      public static void main(String[] args) {
       for(int i=1;i<=Integer.parseInt(args[0]);i++){
        System.out.print(" "+f(i));
       }
      }
       //斐波那契数列1,1,2,3,5,8,13,...
       //第n个数的值为为第n-1和n-2个数的和
        private static int f(int i){
         int sum=0;
         switch(i) {
    case 1:{return 1;} //第1个数为1
    case 2:{return 1;}      //第2个数为1
    default:{return f(i-1)+f(i-2);} //第i个数为第i-1和i-2个数的和,这里体现递归
         } 
       }
      

  6.   

    递归方法的每一次调用都是一个新的方法实例。
    递归方法上一层调用都在等待下一层调用,下层有返回时,结束本层方法。
    递归都有一个基值条件,防止无限递归。
    Over。