C语言-递归实践与简解-正数十进制打印二进制

2021-01-25 04:13

阅读:675

标签:进制   void   执行顺序   函数调用   实现   返回结果   代码执行   code   代码量   

这次实现的是递归,通过递归,我们可以尽量的减少代码量来实现功能。但缺点是递归的每层级调用都会耗掉一部分的内存。

1 int tobinary(int a){
2   if(a/2)
3   printf("%d",tobinary(a/2));
4   return a%2;
5 }
6 void main(void){
7   int a = 63;
8   printf("%d",tobinary(a));
9 }

核心:代码执行到第7层即条件为假时,不再调用函数本身。故开始依次的,从6~1层级别的返回每层所对应的结果,通过倒序的输出来实现十进制正数打印二进制。

层级调用执行顺序:

  调用:1 2 3 4 5 6 7(假,不再执行函数的调用)

  返回:   6 5 4 3 2 1 

注:直到不再执行函数调用时才开始返回结果,可以解释为俄罗斯套娃,当你拆解到不再能拆解为止时即停止,此时通过倒序的方式安装方能得到完整的套娃即解。

C语言-递归实践与简解-正数十进制打印二进制

标签:进制   void   执行顺序   函数调用   实现   返回结果   代码执行   code   代码量   

原文地址:https://www.cnblogs.com/Let-us-Coding/p/12862769.html


评论


亲,登录后才可以留言!