void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); if (n>1 &&n%2==0) p(n-1); }
用p(5)调用的结果是:4 2 1 3 5
4 2 1 可以理解
但是 3 5
void p(int n) { if (n>1 &&n%2==1) p(n-1); printf(“%2d”,n); i
答案:1 悬赏:20 手机版
解决时间 2021-06-08 10:28
- 提问者网友:皆是孤独
- 2021-06-08 06:09
最佳答案
- 五星知识达人网友:渊鱼
- 2021-06-08 06:36
这个很好理解,虽然是个递归调用,你也可以把它想象成堆栈,大于1的奇数入栈,偶数输出,到1递归结束,入栈的奇数分别出栈
第一次调用
5入栈,调用p(4)
输出4,调用p(3)
3入栈,调用p(2)
输出2,调用p(1)
输出1,递归结束
3出栈,输出3
5出栈,输出5
就完了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯