/* 太郎君は大昔に開発されたシーザー暗号を参考にし、 すこし変更することでもうちょっと複雑な暗号方式を作ろうと思いつきました。 シーザー暗号とは、平文(暗号化されていない文)のアルファベットを、 右に 𝑁回 ずらしたもので、たとえば 𝑁=1 の場合、 '𝐴'は'𝐵'になり、'𝑀'は'𝑁'になり、'𝑍'は'𝐴'になります。 そこで太郎君は、文字ごとに 𝑁 の値を変更することを考え、 1文字目なら 𝑁=1、そして2文字目なら 𝑁=2、…のように、 「𝑖文字目の文字を𝑖回右にずらす」ことにしました。 (ずらした結果、文字'𝑍'を超える場合はシーザー暗号と同様に文字'𝐴'へ戻ります) 右にずらすとはアルファベット順の次の文字にするということにします。 そして太郎君は、この新しい暗号方式を「うーさー暗号」と名づけました。 入力に「うーさー暗号」で暗号化された 文字列S が1行(1024文字以内)で与えられます。 文字列S を構成する各文字はアルファベット大文字('A'-'Z')のみで、 復号後の文字列もすべてアルファベット大文字のみで構成されます。 入力文字列を復号した文字列を出力。 最後に改行してください。*/ #include int main(void){ char S[1025]; int i; scanf("%s",S); // 暗号化した文字列が入力される for (i = 0; S[i] != 0; i++){ S[i] -= ((i + 1) % 26); while (S[i] < 65 ){ S[i] += 26; } } printf("%s\n",S); return 0; }