题解 | #二进制数#

二进制数

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");
    }
}

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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