这事一个递归算法把十进制的数字转化为二进制的数字
public class TestDemo
{
public static void main(String[] args)
{
toBinary(10);
}
public static void toBinary(int num)
{
if(num == 0)
{
return;
}
toBinary(num /2);
System.out.print(num%2);
}}
在运行到toBinary(num/2)这个方法时就一直调用递归
当num==0时,就返回到方法的调用处,打印语句System.out.print(num%2);
我觉得就不会输出,为什么,它能输出呢?递归
public class TestDemo
{
public static void main(String[] args)
{
toBinary(10);
}
public static void toBinary(int num)
{
if(num == 0)
{
return;
}
toBinary(num /2);
System.out.print(num%2);
}}
在运行到toBinary(num/2)这个方法时就一直调用递归
当num==0时,就返回到方法的调用处,打印语句System.out.print(num%2);
我觉得就不会输出,为什么,它能输出呢?递归
以10为例:
toBinary(10)
toBinary(5)
toBinary(2)
toBinary(1)
toBinary(0)
System.out.print(1%2);
System.out.print(2%2);
System.out.print(5%2);
System.out.print(10%2);
这是这个程序的执行过程。递归调用需要很深入的理解栈的操作,这样可以理解更加透彻。