回复 4楼 书生牛犊
可是不知道为什么我自己用文件输入,就能输出正确结果
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define N 100000
int main()
{
int i,n,j;
void func1();
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
func1();
return 0;
}
void func1()
{
long int len,i,j,n,s;
char a[N]={0},b[4*N]={0},c[2*N]={0},t[N]={0};
for(i=0;1;i++)
{
t[i]=getchar();
if(t[i]=='\n') {t[i]='0';break;}
}
len=strlen(t);
for(i=0;i<len;i++)
{
a[len-i-1]=t[i];
}
for(i=0;i<len;i++)
{
if(a[i]>='0'&&a[i]<='9') a[i]-='0';
else if(a[i]>='A'&&a[i]<='Z') a[i]-='A'-10;
else {printf("ERROR!!!\n");exit(0);}
b[i*4]=a[i]%2;
b[i*4+1]=a[i]/2%2;
b[i*4+2]=a[i]/4%2;
b[i*4+3]=a[i]/8;
}
len=(float)len*4/3+1;
for(i=0;i<len;i++)
{
c[i]=b[i*3]+b[i*3+1]*2+b[i*3+2]*4;
}
for(i=2*N-1;i>=0;i--)
if(c[i]!=0) break;
for(;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
[此贴子已经被作者于2017-1-13 12:56编辑过]