ACM高手帮忙看看
#include<stdio.h>#include<math.h>
int main()
{
int B[32];
char a;
int i,f,m;
while(scanf("%1c",&a)!=EOF)
{ i=1;
m=a-48;
for(;;)
{
scanf("%1c",&a);
if(a=='\n')
break;
i++;
f=a-48;
m=m+f*(int)pow(2,i-1);
}
for(i=1;;)
{
B[i]=m%10;
if(m<10)
break;
m=(m-m%10)/10;
i++;
}
for(;i>0;i--)
{
switch(B[i])
{
case 0:printf("0000");break;
case 1:printf("0001");break;
case 2:printf("0010");break;
case 3:printf("0011");break;
case 4:printf("0100");break;
case 5:printf("0101");break;
case 6:printf("0110");break;
case 7:printf("0111");break;
case 8:printf("1000");break;
case 9:printf("1001");break;
}
}
printf("\n");
}
return 0;
}
在数字电路中,需要将采集的信号输出到7段显示器上。但是由于器件采集到机器上的是二进制的序列,而显示需要的是BCD码。现在需要你编写一个小程序来解决显示的问题。 bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不 同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进 制0000 1 0001 2 0010 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为 00010000
每行输入一串二进制序列(长度小于30)。
每行输出该序列的BCD码。
Sample Input
1
10
11
Sample Output
0001
0010
0011