Click Here to go back to the homepage.

Reverse Rot Solution:


import java.util.Scanner;

public class Kattis {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] line = sc.nextLine().split(" ");
        int rotate = Integer.parseInt(line[0]);
        StringBuilder output = new StringBuilder();
        do{
            StringBuilder sb = new StringBuilder();
            for(int i: line[1].toCharArray()){
                switch (i){
                    case 95: i = 'Z'+1;
                        break;
                    case 46: i = 'Z'+2;
                        break;
                }
                i = (i - 'A' + rotate) % 28 + 'A';
                switch (i){
                    case 'Z'+1: i = 95;
                        break;
                    case 'Z'+2: i = 46;
                        break;
                }
                sb.append((char) i);
            }
            sb.reverse();
            output.append(sb + System.lineSeparator());
            line = sc.nextLine().split(" ");
            rotate = Integer.parseInt(line[0]);
        } while(rotate > 0);
        System.out.println(output);
    }
}