From f52473c78bb1eca124aa211b614c8fbfe7bf4b83 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sun, 4 Dec 2016 18:50:15 -0500 Subject: Use math to rotate in day 4 --- src/bin/day04.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/bin/day04.rs b/src/bin/day04.rs index c6a9709..8e724c2 100644 --- a/src/bin/day04.rs +++ b/src/bin/day04.rs @@ -64,15 +64,12 @@ impl Room { } fn rotate(c: char, n: u32) -> char { - let mut c = c; - for _ in 0..n { - c = match c { - 'a' ... 'y' => (c as u8 + 1) as char, - 'z' => 'a', - _ => panic!("cannot rotate {}", c), - } + let c = c as u8 + (n % 26) as u8; + if c > b'z' { + (c - 26) as char + } else { + c as char } - c } fn solve1(input: &str) -> u32 { -- cgit 1.4.1