二进制问题

来源:互联网 发布:临沂淘宝客服招聘信息 编辑:程序博客网 时间:2024/06/03 17:42

点击打开链接

队花的烦恼一

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述

ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六、十、八进制输出,然而却没有二进制输出,哎,真遗憾!谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?”

难道你不想帮帮她吗?^_^

输入
输入有多个数据,数据以EOF结束;每个数据ni(0<=ni<=1000010000)用空格隔开;
(温馨提示:EOF即是一个文件的结束标志;while(scanf("%d",&n)!=EOF){})
输出
输出有多行,每行对应一个十进制数ni的二进制数;
注意:输出的二进制去掉任何一个多余的0;
样例输入
0 1 2 10
样例输出
01101010
来源
原创
上传者
Never
****

#include<stdio.h>#include<string.h>int main(){int k,i,s,j;int a[100]={0};//存放n除二取余的得数 long long int n;while(~scanf("%lld",&n)){if(n==0)printf("0\n");else{i=0;while(n/2!=0||n%2!=0){a[i]=n%2;i++;n=n/2;}for(j=i-1;j>=0;j--)//当开头出现0时,舍去 {if(a[j]>0)break;}for(j;j>=0;j--)printf("%d",a[j]);printf("\n");}}return 0;}