yukicoder No.18 うーさー暗号

Problem

No.18 うーさー暗号 - yukicoder

Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class No18 {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String S = reader.readLine();

        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < S.length(); i++) {
            int N = i + 1;
            builder.append(intToChar(charToInt(S.charAt(i)) - N));
        }
        System.out.println(builder.toString());

    }

    private static int charToInt(char c) {
        return (c - 'A');
    }

    private static char intToChar(int i) {
        i = i % 26;
        if (i < 0) {
          return (char) ('Z' + i + 1);
        }
        return (char) ('A' + i);
    }
}

コードの説明

charToInt(S.charAt(i)) - N)の部分でわざわざS.charAt(i)) - Nがマイナスに なった際の処理をcharToIntに書きたくなければ、 charToInt(S.charAt(i)) + 2600 - N)みたいに数字を足しておけばいい。

Remove all ads