Reverse Rot: Difference between revisions
Jump to navigation
Jump to search
imported>Ww109 No edit summary |
imported>Ww109 |
||
Line 6: | Line 6: | ||
== Code == | == Code == | ||
<syntaxhighlight line lang=" | <syntaxhighlight line lang="java"> | ||
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); | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 17:40, 5 December 2015
Idea
Use the symmetry of the structure: the first two pages are bundled with the last two and so on.
Given an odd P, the other three pages are P + 1, N - P and N - P + 1. For an even P, the other three pages are P - 1, N - P + 1 and N - P + 2.
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);
}
}
}