Comments on Caesar shift cipher
Parent
Caesar shift cipher
Introduction
What is the Caesar shift cipher (ROT$n$)? It's basically a cipher sequence that changes a letter's value from the number chosen. If we use ROT1 on "games", we get "hbnft". The basic interpretation of the cipher is iterating the value of a letter by 1 $n$ times. If you still don't understand, try using the ROT13 website.
Challenge
Make a program that takes input of a number from 1 to 25, call it $n$, and takes input of a string. It could be any. Then, use $n$ to convert the string into ROT$n$ and output the result.
Examples of inputs and outputs:
If $n = 4$ and string is "Hello, world.", we get Lipps, asvph
.
If $n = 15$ and string is "trololol", we get igdadada
.
If $n = 7$ and string is "gxoxk zhggt zbox rhn ni", we get never gonna give you up
.
If $n = 24$ and string is "I want breakfast!", we get G uylr zpcyidyqr!
.
If $n = 13$ and string is "guvf grkg vf fhf", we get this text is sus
.
Shortest program wins.
[JavaScript (Node.js)], 67 60 …
3y ago
[Python 3.8 (pre-release)], 98 …
3y ago
[Ruby], 56 bytes -> …
3y ago
Javascript (V8), 202 97 bytes …
3y ago
[C (gcc)], 112 bytes Functi …
3y ago
[C (clang)], 161 bytes …
3y ago
[Haskell], 74 bytes …
3y ago
Post
JavaScript (Node.js), 67 60 bytes
o=>r=>Buffer(o).map(c=>c%32<26&c>64?(c%32+r)%26+c-c%32:c)+''
o=>r=> // Define a function taking o and r, and returning...
Buffer(o).map(c=> // a Buffer of the charcodes of o, mapped to...
c%32<26&c>64 // If the character is alphabetical - charcode%32 is less than 26, charcode is >64
? // Then
(c%32+r)%26+c-c%32 // Rot-n the character - Mod 32, add r, mod 26, add correct number depending on whether it's uppercase of lowercase.
:c) // Else return the original string
) + '' // Coerce to string
-7 thanks to Shaggy.
0 comment threads