新手练习-幂数加密
2021年1月18日
13:57
[题目描述]
flag为cyberpeace{你解答出的八位大写字母}
[附件]
8842101220480224404014224202480122
[思路]
观察可知【附件】中给出数字串有7个0,而答案为8位字母,故尝试将0为分隔符。
分割后的数字串为
88421 122 48 2244 4 142242 248 122
上串为2的幂数
33210 011 23 1122 2 021121 123 011
发现与标准的幂数加密不同,每个字母中有重复的数字出现,但其实2个重复的幂数实际上相当于乘2,例如33代表的,就是2^3+2^3=2^4,也就是4。
根据幂数加密的原理,发现其实不用纠结于原理,直接把分割后的各个子串求和,再转字母即可。
代码:
while (cin)
{
sum=0;
cin>>input;
for(auto ch:input)
sum += ch-'0';
cout<<(char)('A' + sum - 1);
}
[答案]
cyberpeace{welldone}