2012年7月3日火曜日

AOJ Volume0 0017: Caesar Cipher

"the " , "this", "that"のいずれかが見つかるまでシフトする。

キーは3つだったため、配列で回さずそのままifで通した。

/*************************
*  2012/07/03            *
*  AOJ Volume0 0017      *
*  Caesar Cipher         *
*  crane                 *
**************************/

#include<iostream>
#include<string>
using namespace std;

int main(){
    string input;
    while(getline(cin, input)){
 
        for(int i=0; i<26; i++){
            for(int j=0; j<input.length(); j++){
                if('a'<=input.at(j) &&  input.at(j) <='z')
                    input.at(j) = ((input.at(j) - 'a' + 1) % 26) + 'a';
            }
            if(input.find("the")!=-1 || input.find("this")!=-1 || input.find("that")!=-1){
                break;
            }
        }
        cout << input << endl;
    }
    return 0;
}

0 件のコメント:

コメントを投稿