http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3713

题意:给定一个字符串,首先输出这个字符串的长度(以两位的十六进制的形式),如果长度以二进制表示,其位数从右往左每七位分为一段,除了最后的一段,其余段在最高位前加1,然后依次以十六进制输出,如果不足七位,直接以两位十六进制输出,如果长度为0,输出00。然后输出字符串的ASCII的十六进制形式。

 #include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
const int N=;
const int bit7=<<;
char s[N];
int main()
{
int t;
scanf("%d%*c",&t);
while(t--)
{
gets(s);
int len = strlen(s);
if(len==)
{
printf("%02X\n",len);
continue;
}
while(len)
{
if(len < bit7)
printf("%02X",len);
else
printf("%02X",len%bit7+bit7);
len /= bit7;
}
for (int i = ; s[i]; i++)
{
printf("%02X",s[i]);
}
puts("");
}
return ;
}

随机推荐

  1. mysql服务无法启动(1067错误)时数据备份的经验

    mysql服务无法启动(1067错误)时数据备份的经验 背景 方法 背景 在已安装MySQL5.5的情况下,再次安装 MySQL5.7时,因为MySQL5.7是压缩文件安装的方式,复制MySQL5.5 ...

  2. 洛谷——P2420 让我们异或吧

    P2420 让我们异或吧 题目描述 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中…xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B ...

  3. Linux学习笔记记录(六)

  4. 【模板】51nod 1051 最大子矩阵和

    [题解] 二重循环枚举起始列和终止列,竖着往下加,转化为一个最大子段和问题,逐行累加即可. #include<cstdio> #include<cstring> #includ ...

  5. 【C++】实现记录软件计时时间

    利用getTickCount()和getTickFrequency()函数实现计时 double time0 = static_cast<double>(getTickCount()); ...

  6. 百练2815:城堡问题(DFS)

    描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # ...

  7. RequestMapping_PathVariable注解

    [@PathVariable 映射URL绑定的占位符] 1.带占位符的URL是Spring 3.0 新增的功能,该功能在Spring MVC向 REST 目标挺进发展过程中具有里程碑的意义. 2.通过 ...

  8. CentOS 安装Oracle 11g R2

    CentOS 安装Oracle 11g R2 学习了-/ https://www.osyunwei.com/archives/5445.html

  9. Eclipse错误出现:Unable to install breakpoint in... (未能解决)

    Unable to install breakpoint in... Eclipse Unable to install breakpoint in  的问题还是没解决 1.重装eclipse无效 2 ...

  10. docker run和nsenter

    docker run和nsenter 1,本机运行java -version没有内容, 使用 docker run java java -version就有内容了: 2, docker run -d ...