我正在寻找关于以下程序或代码如何工作的一些简要说明。谢谢
public void Convert( int iNum )
{
int m = 0;
if (iNum == 1 )
System.out.print( iNum );
else
{
m = iNum % 2;
Convert(iNum/2);
System.out.print(m);
}
}
答案 0 :(得分:2)
此程序尝试使用递归将十进制数转换为二进制数。让我们举一个例子:
十进制5 - >二进制101
Convert(5):
m = 5 %2 -> 1
Convert(2):
m -> 2%2 -> 0
Convert(1)
The first if is true: -> 1
Output: 101
答案 1 :(得分:0)
这是一个简单的递归调用 if部分只执行一次,即inum = 1; else部分只保持调用convert(每次将inum的值减去2),当我们不能进一步潜入inum时,首先执行if部分并返回到下一个堆叠的递归版本并打印剩余部分,我们得到了div inum / 2。