AOJ 0512
時間がないので(家を出る数分前),簡単に書きます.AOJ 0512 Caesar Cipher : AC
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;i++) int main() { char diff[27]={"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; char leg[27]={"DEFGHIJKLMNOPQRSTUVWXYZABC"}; int i=0; string ans; cin>>ans; while(ans[i]){ rep(j,26){if(ans[i]==leg[j]){ans[i]=diff[j];break;}} i++; } cout<<ans<<endl; return 0; }
解法
A〜Zの文字配列と,D〜Cの文字配列の2つを用意.それを,入力に応じた文字から文字コード-3した文字を,用意した2つの文字配列から選んで代入.それをループさせて,最後に出力.