C语言-递归实践与简解-正数十进制打印二进制
这次实现的是递归,通过递归,我们可以尽量的减少代码量来实现功能。但缺点是递归的每层级调用都会耗掉一部分的内存。
int tobinary(int a){ if(a/2) printf("%d",tobinary(a/2)); return a%2; } void main(void){ int a = 63; printf("%d",tobinary(a)); }
核心:代码执行到第7层即条件为假时,不再调用函数本身。故开始依次的,从6~1层级别的返回每层所对应的结果,通过倒序的输出来实现十进制正数打印二进制。
层级调用执行顺序:
调用:1 2 3 4 5 6 7(假,不再执行函数的调用)
返回: 6 5 4 3 2 1
注:直到不再执行函数调用时才开始返回结果,可以解释为俄罗斯套娃,当你拆解到不再能拆解为止时即停止,此时通过倒序的方式安装方能得到完整的套娃即解。
相关推荐
steeven 2020-11-10
Tips 2020-10-14
nongfusanquan0 2020-08-18
清溪算法君老号 2020-06-27
清溪算法 2020-06-21
RememberMePlease 2020-06-17
nurvnurv 2020-06-05
SystemArchitect 2020-06-02
清溪算法 2020-05-27
清溪算法 2020-05-25
LczPtr 2020-05-25
举 2020-05-20
steeven 2020-05-09
Tips 2020-05-03
猛禽的编程艺术 2020-05-01
hongxiangping 2020-04-30