11.12acm培訓題 Problem B: 字符串的解密

Description

行神爲了躲避女朋友的信息審查曾經使用過一種很簡單的密碼。對於明文中的每個字符,將它用它字母表中後5位對應的字符來代替,這樣就得到了密文。比如字符A用F來代替。如下是密文和明文中字符的對應關係。

密文
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

明文
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 

可偏偏行神忘記了怎樣去解開這些密碼,,,不忍心看着滿滿的資源就這麼煙飄雲散,於是他請求你對給定的密文進行解密得到明文,並許下可拿着結果去兌換2T超大資源的重酬,來試試吧。

你需要注意的是,密文中出現的字母都是大寫字母。密文中也包括非字母的字符,對這些字符不用進行解碼。

Input

多組輸入,至EOF結束

每組一行,給出密文,密文不爲空,而且其中的字符數不超過200。

Output

每組輸出一行,即密文對應的明文。

Sample Input

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

Sample Output

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES


思路:

找到規律,通過for循環進行運行判斷,水題。

注:注意continue而不是break;

代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{

    char s[200];
    while(gets(s)!=NULL)
    {
        int len=strlen(s);
        for(int i=0; i<len; i++)
        {
            if((s[i]>='A'&&s[i]<='E'))
            {
                s[i]=s[i]+21;
                continue;
            }
            if((s[i]>='F'&&s[i]<='Z'))
            {
                s[i]=s[i]-5;
                continue;
            }
        }
        puts(s);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章