|
|
对于这样一个题目:
void e(int n)
{
if(n>0)
{
e(--n);
printf(d%,n);
e(--n);
}
}
问:e(4)的输出结果
-------------------------------------------------------------
因为:
4>0
e(3)
3>0
e(2)
2>0
e(1)
1>0
e(0)
输出'0'
e(-1)
输出'1'
e(0)
输出'2'
e(1)
1>0
e(0)
输出'0'
e(-1)
输出'1'
e(0)
输出'3'
e(2)
2>0
e(1)
1>0
e(0)
输出'0'
e(-1)
输出'1'
e(0)
输出'2'
e(1)
1>0
e(0)
输出'0'
e(-1)
输出'1'
e(0)
结束
所以我在纸上算出来的答案是:01201301201
-------------------------------------------------------------------------------------
GeeGee兄在机器上却得到了如下的结果:
e(4)
e(3)
e(2)
e(1)
e(0)
Print n = 0
e(-1)
Print n = 1
e(0)
Print n = 2
e(1)
e(0)
Print n = 0
e(-1)
Print n = 3
e(2)
e(1)
e(0)
Print n = 0
e(-1)
Print n = 1
e(0)
答案:0120301
很郁闷,期待高手释疑
|
|