(递归)十进制转换成二进制

来源:互联网 发布:辩论赛网络的利与弊 编辑:程序博客网 时间:2024/06/05 05:03

这里写图片描述
输入样例:

10

输出样例:

1010

对于这道题,开始毫无头绪,后来想到,“除2取余,逆序输出”可以用递归实现。代码如下(不能实现对0的二进制的转换)

void dectobin( int n ){    if(n==0)        return ;    dectobin(n/2);    printf("%d",n%2);}

于是,加了个标志位,对于0单独处理。
ac代码如下:

int flag=0;void dectobin( int n ){    if(n==0&&flag==0)    {        printf("0");        return ;    }    if(n==0&&flag==1)        return ;    flag=1;    dectobin(n/2);    printf("%d",n%2);}