题目大意:给你一串代码,要求进行解码。解码规则详见题目。

解题思路:这是一道字符串处理的题目。

首先,有这么几种情况输出Error:

1.代码中出现除了0和1外的字符。

2.代码长度不是8的倍数。

3.在输出字母时发现转化后的数字大于25。

4.进行加法时,第二个数不是一个数单元。

其余情况均能解码。解码时转化一下即可。

答案输出的技巧:本题如果一个操作一个操作输出,可能遇到输出到一半发现Error的情况。解决方案是把答案存在一个字符串当中,最后整个字符串输出即可。

C++ Code:

#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
using std::string;
char buf[171118],s[11];
int bufpos;
string ans;
inline void error(){puts("Error");exit(0);}
inline void get(char* s){for(int i=0;i<8;++i,++bufpos)*s++=buf[bufpos];}
int main(){
ans="";
scanf("%s",buf);
for(int i=0;buf[i];++i)if(buf[i]!='0'&&buf[i]!='1')error();
if(strlen(buf)%8)error();
bufpos=0;
while(buf[bufpos]=='0'||buf[bufpos]=='1'){
get(s);
if(s[0]=='1'&&s[1]=='0'&&s[2]=='1'){
int p=0;
for(int i=7,j=1;i>2;--i,j<<=1)
p+=(s[i]-'0')*j;
if(p<26)ans+=(char)(p+'A');else error();
}else
if(s[0]=='1'&&s[1]=='1'&&s[2]=='1')ans+=' ';else
if(s[0]=='0'){
int p=0,pp;
for(int i=7,j=1;i;--i,j<<=1)
p+=(s[i]-'0')*j;
pp=p>>1;p=0;
if(buf[bufpos]!='0')error();
get(s);
for(int i=7,j=1;i;--i,j<<=1)
p+=(s[i]-'0')*j;
p>>=1;p+=pp;
if(p==0)ans+='0';else{
int w=1;
for(;w<=p;w*=10);
for(w/=10;w;w/=10)ans+=(char)((p/w)^'0'),p%=w;
}
}
}
printf("%s\n",ans.c_str());
return 0;
}

最新文章

  1. c++继承概念
  2. apk支持html video控制 ,是播放状态就暂停,暂停状态就播放
  3. django-CSRF verification failed. Request aborted
  4. vi 常用技巧
  5. jquery validation ajax 验证
  6. scp 在不同机器上传文件
  7. DOM(一)
  8. 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理
  9. VisualStudioCode中用dotnet命令创建多个ASP.NET Core 项目、类库、控制台程序,并添加应用间的引用
  10. SpringBoot项目中禁用HttpClient那些嘈杂的日志
  11. php5.6安装redis各个版本地址集合
  12. MySQL导出数据字典
  13. 让浏览器兼容H5元素和媒体查询的代码
  14. [py]django第三方分页器django-pure-pagination实战
  15. 一个flume agent异常的解决过程记录
  16. sqlserver 创建用户仅仅能訪问指定视图
  17. mysql格式化日期
  18. YouCompleteMe自动补全的安装配置与使用
  19. Android Design与Holo Theme详解
  20. Pytorch 一些函数用法

热门文章

  1. python字符串、列表、元组
  2. ZBrush软件特性之Edit
  3. zabbix_agent代理端监控FTP服务
  4. 03 Winform基础
  5. 【Jim】I am back (ง •_•)ง
  6. HDU 2078 选课时间( 水题 )
  7. KVM虚拟机相关步骤
  8. 2019-03-15 Python time datetime 获取当下时间 和 格式化时间
  9. Django REST Framework 序列化和校验 知识点
  10. [luogu] P2354 [NOI2014]随机数生成器 (贪心)