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的?
{
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的?
第一次调用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();
总觉得是输出一个2啊
---------------------------------------
递归通俗的说就是调用自身
lz这里:
if (n <10) count(n+1); ----》不正是调用了自身的count(int n)方法了吗 循环就在这里