题目:
题目大意:
| o . o| | o . | | ooo . o| | ooo .o o| | oo o. o| | oo . oo| | oo o. oo| | o . | | oo . o | | ooo . o | | oo o.ooo| | ooo .ooo| | oo o.oo | | o . | | oo .oo | | oo o.ooo| | oooo. | | o . | | oo o. o | | ooo .o o| | oo o.o o| | ooo . | | ooo . oo| | o . | | oo o.ooo| | ooo .oo | | oo .o o| | ooo . o | | o . | | ooo .o | | oo o. | | oo .o o| | o . | | oo o.o | | oo . o| | oooo. o | | oooo. o| | o . | | oo .o | | oo o.ooo| | oo .ooo| | o o.oo | | o. o | ___________
Sample Output
A quick brown fox jumps over the lazy dog.
将途中的打孔以二进制形式解码:洞为1.最后将所累加的数值根据阿思克码翻译成相应字符。
方法:此题是参考学长的博客,思路是设个数组,其值分别为0,0,64,32,16,8,0,4,2,1。次数组下标与有洞的位置对应进行每一行的累加,算出结果之后以%C打出。
代码
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main () {
char str[100];
int i=0;
int sum=0;
int one=0;
memset(str,0,sizeof(str));
int c[] = {0, 0, 64, 32, 16, 8, 0, 4, 2, 1};
gets(str);
while(gets(str)&&str[0]!='_') {
for(i=0;str[i];i++) {
if(str[i]=='o') {
sum=sum+c[i];
}
}
if(sum!=0) {
printf("%c",sum);
sum=0;
}
}
return 0;
}
本文介绍了一种通过解析打孔纸带上的孔位来获取隐藏信息的方法。使用特定的二进制转换技巧,将纸带上孔的存在与否转化为ASCII码对应的数值,进而解码出完整的文本信息。
&spm=1001.2101.3001.5002&articleId=47008859&d=1&t=3&u=6610a5f0e5a247d8a4aaeaa0d415cc0d)
1859

被折叠的 条评论
为什么被折叠?



