2011年6月21日 星期二

d167: 編碼轉譯

內容 :
    棲息於妖怪之山的河童河城 荷取在測試「光學迷彩服」中慘遭魔理沙以強度3.0的魔神砲完全擊潰之後暫時停止了研究與分解外來品的工作轉而把重心放在新來的巫女東風谷 早苗遇到的問題上原來,由於身處幻想鄉中,早苗自外世界帶來的手機因收不到訊號,因而便無法使用在不論如何嘗試都毫無起色因此萬念俱灰時早苗發現即便是在如此特別的幻想鄉中,只要以某種特殊的編碼傳送,簡訊的功能似乎還能正常的運作但是早苗雖貴為現世神卻對於文字與符號間的轉換非常的不在行因此就把此麻煩事交給河城去忙了

輸入說明 :
    輸入包含一串英文。

輸出說明 :
    請輸出轉換後的結果。
    您應該可以找出其中的關係。

範例輸入 :
Project Shrine Maiden

範例輸出 :
___________
| o o . |
| ooo . o |
| oo o.ooo|
| oo o. o |
| oo .o o|
| oo . oo|
| ooo .o |
| o . |
| o o . oo|
| oo o. |
| ooo . o |
| oo o. o|
| oo o.oo |
| oo .o o|
| o . |
| o o.o o|
| oo . o|
| oo o. o|
| oo .o |
| oo .o o|
| oo o.oo |
| o. o |
___________

提示 :
    ACM 10878

程式碼 :
#include <stdio.h>

int main()
{
    int i;
    char s[100],ans[13];
    
    ans[0] = '|';
    ans[1] = ' ';
    ans[6] = '.';
    ans[10] = '|';
    ans[11] = '\n';
    ans[12] = '\0';
        
    while(gets(s)!=NULL)
    {
        printf("___________\n");
        for(i=0;s[i]!='\0';i++)
        {
            ans[2] = ' ';
            ans[3] = ' ';
            ans[4] = ' ';
            ans[5] = ' ';
            ans[7] = ' ';
            ans[8] = ' ';
            ans[9] = ' ';
            if(s[i] > 63)
            {
                ans[2] = 'o';
                s[i] = s[i] - 64;
            }
            if(s[i] > 31)
            {
                ans[3] = 'o';
                s[i] = s[i] - 32;
            }
            if(s[i] > 15)
            {
                ans[4] = 'o';
                s[i] = s[i] - 16;
            }
            if(s[i] > 7)
            {
                ans[5] = 'o';
                s[i] = s[i] - 8;
            }
            if(s[i] > 3)
            {
                ans[7] = 'o';
                s[i] = s[i] - 4;
            }
            if(s[i] > 1)
            {
                ans[8] = 'o';
                s[i] = s[i] - 2;
            }
            if(s[i] > 0)
            {
                ans[9] = 'o';
                s[i] = s[i] - 1;
            }
            printf("%s",ans);
        }
        printf("|    o. o |\n"); //enter      
        printf("___________\n");
    }
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=d167

沒有留言:

張貼留言