kotonoha_pcg@ぷろこんにっき

ここ(http://kotonoha-pcg.hatenablog.com/)の別館です、競プロの話が殆どです。最近mdモードに変えて一気に使い勝手が変わりました。

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つの文字配列から選んで代入.それをループさせて,最後に出力.