码迷,mamicode.com
首页 > 其他好文 > 详细

递归的理解

时间:2014-07-21 23:29:01      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

    //十进制的数转化为二进制
    public static void toBin(int num){
        if(num > 0){
            toBin(num/2);
            System.out.println(num%2);
        }
    }

  以上面的十进制转化为二进制为例:传参数传入6,把6转化为二进制:使用递归函数不断的调用自身,由于方法在java中是存放到栈中的:在栈中分配空间如下图:

 

bubuko.com,布布扣

递归总有结束的时候,当if(0>0)的时候结束,然后逆向输出结果,从下到上,最后一个递归方法直接结束,因为if(0>0)不成立,也就是说toBin(0)方法没打印结果,到倒数第二个toBin(1),首先if(1>0)条件成立,执行到toBin(1/2)也就是toBin(0),由于知道toBin(0)执行完了,所以toBin(1/2)执行完,相当于直接执行输出方法(1%2)=1,所以打印出1,同理toBin(3/2)执行完了在,执行打印语句3%2,打印出1,同理toBin(6/2)执行完了,执行打印语句

6%2=0,结果为110.

递归的理解,布布扣,bubuko.com

递归的理解

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/200911/p/3859301.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!