2011年5月8日 星期日

ACM 10878 Decode the tape

以第二行為例子,它其實是一個二進位的ASCII碼
 
| o   .  o|
01000 001
 
所以第二行其實就代表了 2^6 + 2^0 = 65,也就是ASCII中的'A'
其餘依此類推
#include <stdio.h>

int main(void)
{
    char s[30];
    int i, j, sum;
   
    gets(s);
    while (gets(s) != NULL && s[0] != '_')
    {
        j = 128, sum = 0;
        for (i = 1; i <= 5; i++, j /= 2)
            if (s[i] == 'o')
                sum += j;
        for (i = 7; i <= 9; i++, j /= 2)
            if (s[i] == 'o')
                sum += j;
        putchar(sum);
    }

    return 0;
}

沒有留言:

張貼留言