diff options
author | June McEnroe <programble@gmail.com> | 2016-12-04 18:50:15 -0500 |
---|---|---|
committer | June McEnroe <programble@gmail.com> | 2016-12-04 18:50:15 -0500 |
commit | f52473c78bb1eca124aa211b614c8fbfe7bf4b83 (patch) | |
tree | 2aae6933e48db2ca30bb56e98d279d55d59f2b79 /src/bin/day04.rs | |
parent | Day 4 part 2 (diff) | |
download | aoc-f52473c78bb1eca124aa211b614c8fbfe7bf4b83.tar.gz aoc-f52473c78bb1eca124aa211b614c8fbfe7bf4b83.zip |
Use math to rotate in day 4
Diffstat (limited to '')
-rw-r--r-- | src/bin/day04.rs | 13 |
1 files changed, 5 insertions, 8 deletions
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 { |