Reverse Rot

From programming_contest
Revision as of 19:47, 13 January 2016 by imported>Kmk21 (Kmk21 moved page Reverse Robot to Reverse Rot)
Jump to navigation Jump to search

Original Description

Idea

Manipulate the ASCII value of chars

Handle special cases of moving them to the end of normal ones. Then use module to get the result after shift

Code

import java.util.*;
public class Reverse_Rot {

	public static void encrypt(String s, int k){
		for(int i = s.length()-1; i>=0; i--){
			char c = s.charAt(i);
			if(c == 95) c = 91;
			if(c == 46) c = 92;
			c = (char)(c + k);
			c = (char)((c - 'A') % 28 + 'A');
			if(c == 91) c = 95;
			if(c == 92) c = 46;
			System.out.print(c);
		}
		System.out.println();
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		while(scan.hasNext()){
			int k = scan.nextInt();
			if(k == 0)
				break;
			String s = scan.next();
			encrypt(s,k);
		}

	}

}