题意:给t组数据,每组数据一个字符串,对于每组数据先输出其字符串长度len,先将十进制的len转为二进制,取其后7位,前面有1剩余把1放在后七位的前面构成8位,按次序输出,输完len后,字符串转化为16进制输出。
关键在于读题。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[5000010];
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
getchar();
while(t--)
{
gets(a);
int len=strlen(a);
int l=len;
if(len==0)
printf("00\n");
else
{
while(l)
{
int tmp=l%128;
l/=128;
if(l)
{
tmp+=128;
}
printf("%02X",tmp);
}
for(int i=0; i<len; i++)
printf("%02X",a[i]);
printf("\n");
}
}
}
return 0;
}