public class Count
{
    static void count(int n)               //递归方法
    {
        if (n<10)  count(n+1);
        System.out.print(" "+n);
    }  
    public static void main(String args[])
    {
        count(1);
        System.out.println();
    }
}初学JAVA     今天看了看递归算法,   对上面的这个方法不太理解,帮忙解释下 具体是怎么实现 10 9 8 7 6 5 4 3 2 1的?

解决方案 »

  1.   

    传一个1进去在System.out.print(" "+n); (要打印1)之前  你要先执行count(n+1); 方法也就是要先打印 n+1也就是2   但要打印2之前  你又要先执行count(n+1);方法也就是在打印2之前要  打印n+1 ,这时n是2,也就是要先打印3, 但打印3之前你又要先执行count(n+1);............依次类推所以是10 9 8 7 6 5 4 3 2 1
      

  2.   

    没if(n<10)的话  就是个死循环了你认为输出的是2但是  这是2<10  所以输出2之前    又要执行一次count(n+1); 方法
      

  3.   

    详细步骤:
    第一次调用count(1); n小于10.调用count(n+1); n=1,所以调用count(1+1);
    第二次调用count(2); n小于10.调用count(n+1); n=2,所以调用count(2+1);
    第三次调用count(3); n小于10.调用count(n+1); n=3,所以调用count(3+1);
    第四次调用count(4); n小于10.调用count(n+1); n=4,所以调用count(4+1);
    第五次调用count(5); n小于10.调用count(n+1); n=5,所以调用count(5+1);
    第六次调用count(6); n小于10.调用count(n+1); n=6,所以调用count(6+1);
    第七次调用count(7); n小于10.调用count(n+1); n=7,所以调用count(7+1);
    第八次调用count(8); n小于10.调用count(n+1); n=8,所以调用count(8+1);
    第九次调用count(9); n小于10.调用count(n+1); n=9,所以调用count(9+1);
    第十次调用count(10); n不小于10.返回System.out.print(" "+10);
    返回到了第九次调用,第九次调用执行System.out.print(" "+9);
    返回到了第八次调用,第八次调用执行System.out.print(" "+8);
    返回到了第七次调用,第七次调用执行System.out.print(" "+7);
    返回到了第六次调用,第六次调用执行System.out.print(" "+6);
    返回到了第五次调用,第五次调用执行System.out.print(" "+5);
    返回到了第四次调用,第四次调用执行System.out.print(" "+4);
    返回到了第三次调用,第三次调用执行System.out.print(" "+3);
    返回到了第二次调用,第二次调用执行System.out.print(" "+2);
    返回到了第一次调用,第一次调用执行System.out.print(" "+1);
    返回到main.执行System.out.println();
      

  4.   

    我觉得只是一个if结构啊  为什么要循环那么多次?
    总觉得是输出一个2啊
    ---------------------------------------
    递归通俗的说就是调用自身
    lz这里:
    if (n <10)  count(n+1); ----》不正是调用了自身的count(int n)方法了吗  循环就在这里
      

  5.   

    LZ 换换思路慢慢一行一行往下读你应该读到if (n <10)  count(n+1); 的时候 直接再去从头读一遍count(int n)方法当你读到System.out.print(" "+n);这一行的时候你会发现这时n已经是10了。。