看到题目的第一眼我的蛋就疼了...瞬间想起了莫尔斯码╮(╯▽╰)╭
难道ACM还考察密码学的知识....
看了十几分钟找不到头绪,果断看了其他人的结题报告..泥马..把二进制写成这个样子的人也算是个人才了ORZ.
题目挺简单的,但是大部分人都是先把二进制写出来,再转化为十进制输出.忽然,我看到了一个与众不同的写法...
其实略微想一下,Input的格式都是对齐的,所以只需计算1的位权就可以了,而每位的位权都可以写出来.
这样就省去了转化的步骤..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int num[] = {0,0,64,32,16,8,0,4,2,1};
int asc = 0;
//freopen("input.txt","r",stdin);
int i = 0;
char temp[50];
while (gets(temp))
{
asc = 0;
if (temp[0] != '|')
continue;
for (i = 2; i < 11; i++)
{
if (temp[i] == 'o')
asc += num[i];
}
printf("%c",asc);
}
return 0;
}