NYOJ275队花的烦恼一

队花的烦恼一

时间限制: 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
样例输出
0
1
10
1010
 
    
 
    
(1)
#include<stdio.h>
#include<string.h>
void Binary( int n, char* b ){
   int j = 0;
   if( n == 0 ){
      b[j++] = '0';
      b[j] = '\0';
      return ;
    }
    while( n != 0 ){
       b[j++] = n % 2 + '0';
       n = n / 2;
      }
     b[j] = '\0';
}
int main( ){
  char b[60];
  int n;
  while( scanf("%d", &n ) != EOF ){
      Binary( n, b );
     for( int i = strlen( b )-1 ;  i >= 0 ; i-- )
     printf("%c", b[i] );
     putchar( '\n' );
}
return 0;
}
 
    
(2)
 
    
#include <stdio.h>
 int main()
 {
 int num1,i,j,temp;
 while(scanf("%d",&num1)!=EOF)
 { 
 int a[30]={0};
 i=0;
 if(num1==0){printf("0\n");continue;}
 while (num1)
 {
 temp = num1%2;
 a[i]=temp;
 num1 /= 2;
 i++;
 }
 for(j=29;a[j]==0;j--);
for(i=j;i>=0;i--)printf("%d",a[i]);
 printf("\n");
 }
 return 0;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值