C++练习题,初学者求解

C++练习题,菜鸟求解
C++练习题,菜鸟求解
#include <stdio.h>
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
void main()
{
fun(3);printf("\n");
}
请问答案是13,为什么??????详细点,谢谢大家了

------解决方案--------------------
if(x/2>0)fun(x/2);
printf("%d",x);

因为x/2=1,所以执行fun(1)
fun(1)打印1,递归结束,回到之前的函数
然后打印3
就是13
------解决方案--------------------
fun(3)
  3/2=1>0 所以fun(1)
      1/2=0所以if不成立
      打印1
      调用fun(1)结束
      打印3
调用fun(3)结束
打印换行    

要学会调试,走走看不就明白了