题解 | #二进制数#

二进制数

https://www.nowcoder.com/practice/103dd589fed14457a673c613d8de3841

#include <stdio.h>
int main() {
    int a,x,count,state;
    while (scanf("%d", &a) != EOF) { 
        x=1,count=1;
        if(a%2==0)
        state=0;
        else
        state=1;
        while(a-x>0)
        {
            x*=2;
            count++;
        }
        count--;
        x=x/2;
        a=a-x;
        while(a>0)
        {
            printf("1");
            count--;
			x=x/2;
            a=a-x;
            while(a<0)
            {   
                printf("0");
                count--;
				a=a+x;
                x=x/2;
                a=a-x;
            }
        }
        printf("1");
        count--;
        if(state==0)
        {
			for(int i=0;i<count;i++)
        	printf("0");
        }
        printf("\n");
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:24
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-25 18:29
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
07-15 11:35
门头沟学院 Java
心里踏实多了,可以安心准备论文了
看不见我ffgh:牛哇佬,要不要来试一试pdd,部门氛围很好
京东开奖153人在聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务