本帖最后由 郑飞 于 2014-7-25 00:36 编辑
简单的说 这个方法就是把输入的参数一直除2然后倒序输出每个参数模2的结果 10进制转2进制
举个例子 你输入15 是这样的过程:
toBinary(15)
=>
toBinary(15) {
if(15>1)
{
toBinary(15/2);// toBinary(7)
}
System.out.println(15%2);
}
=>
toBinary(15) {
if(15>1)
{
toBinary(7) {
if(7>1)
{
toBinary(7/2);// toBinary(3)
}
System.out.println(7%2);
}
}
System.out.println(15%2);
}
=>
toBinary(15) {
if(15>1)
{
toBinary(7) {
if(7>1)
{
toBinary(3) {
if(3>1)
{
toBinary(3/2);// toBinary(1)
}
System.out.println(3%2);
}
}
System.out.println(7%2);
}
}
System.out.println(15%2);
}
=>
toBinary(15) {
if(15>1)
{
toBinary(7) {
if(7>1)
{
toBinary(3) {
if(3>1)
{
toBinary(1) {
if(1>1)//不成立
{
toBinary(1/2);//跳过
}
System.out.println(1%2);//从最里层依次输出
}
}
System.out.println(3%2);
}
}
System.out.println(7%2);
}
}
System.out.println(15%2);
}
大概就这个意思 递归方法看不清 动手画图或者多套几次 没难度 一看就明白
|