博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【郑轻邀请赛 B】base64解密
阅读量:5347 次
发布时间:2019-06-15

本文共 1339 字,大约阅读时间需要 4 分钟。

【题目链接】:

【题意】

【题解】

把密文;
在表中找到每个字符对应的数字;
然后转换成相应的二进制;
如果不足6位就在二进制的前面补零补到6位;
然后每个字符6个二进制6个二进制地排在一起;
然后8位8位地输出;
->最后可以得到”要你输入一个整数x,然后输出x%2017”;
【Number Of WA
0
【完整代码】

#include 
using namespace std;#define rep1(i,x,y) for (int i = x;i <= y;i++)#define LL long longmap
dic;string s,temp;int a[20],tot,x;string cl(int x){ string d = ""; while (x) { d=char((x&1)+'0')+d; x>>=1; } while (int(d.size())<6) d='0'+d; return d;}char out(){ int d = 0; for (int now = 1,i = 8;i>=1;i--) { d+=a[i]*now; now<<=1; } char t = d; return t;}int main(){ //freopen("D:\\rush.txt","r",stdin); for (char key = 'A';key<='Z';key++) dic[key]=key-'A'; for (char key = 'a';key<='z';key++) dic[key]=key-'a'+26; for (char key = '0';key<='9';key++) dic[key]=key-'0'+52; dic['+']=62,dic['/']=63; //cin >> s; s="d2hhdCBpcyB0aGUgcmVtYWluZGVyIHdoZW4gdGhlIG51bWJlciBpcyBkaXZpZGVkIGJ5IDIwMTc/"; temp=""; int len = s.size(); rep1(i,0,len-1) { temp+=cl(dic[s[i]]); } len = temp.size(); //cout << temp<
“what is the reminder of x after divided by 2017" */ int T; cin >> T; while (T--) { cin >> x; cout << x%2017<

转载于:https://www.cnblogs.com/AWCXV/p/7626421.html

你可能感兴趣的文章
【Qt】Qt Linguist介绍【转】
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
视觉设计师的进化
查看>>
Python/jquery
查看>>
WPF之Binding
查看>>
【BZOJ】【2132】圈地计划
查看>>
HTML图片映射实用
查看>>
DP题目 sicily 1687 Permutation
查看>>
转载:无线测试
查看>>
Hadoop框架之HDFS的shell操作
查看>>
mybatis 学习四 (上)resutlMap
查看>>
ES6学习之数组的扩展
查看>>
Lua 语言基本语法
查看>>
ARM 的Thumb状态测试
查看>>
windows下读取utf-8文件
查看>>
apache 启动不了的排查方法
查看>>
Java有没有goto?
查看>>