Implement day 25.

This commit is contained in:
2018-11-29 16:31:57 +01:00
parent a104356b6f
commit 80328015d2
3 changed files with 75 additions and 0 deletions

43
2016/src/day25.rs Normal file
View File

@@ -0,0 +1,43 @@
use std::io;
use common;
#[derive(Default)]
pub struct Day25 {
}
impl Day25 {
pub fn new() -> Day25 {
Default::default()
}
}
impl common::Solution for Day25 {
fn part1(&mut self, _input: &mut io::Read) -> String {
let initial = 0b101010101010 - 362 * 7;
println!("Initial value: {}", initial);
sender_program(initial);
unreachable!();
}
}
/// This function is an approximation of what the original code is doing.
pub fn sender_program(mut a: i32) {
// Placeholder variables
let mut b = 0;
let mut d = 0;
d = a;
d += 362 * 7;
loop {
if a == 0 {
a = d;
}
b = a;
a = b / 2;
b = b % 2;
println!("{}", b);
}
}

View File

@@ -13,6 +13,7 @@ pub mod day15;
pub mod day16;
pub mod day23;
pub mod day24;
pub mod day25;
fn get_impl(day: &str) -> Box<common::Solution> {
match day.parse() {
@@ -22,6 +23,7 @@ fn get_impl(day: &str) -> Box<common::Solution> {
Ok(16) => { Box::new(day16::Day16::new()) }
Ok(23) => { Box::new(day23::Day23::new()) }
Ok(24) => { Box::new(day24::Day24::new()) }
Ok(25) => { Box::new(day25::Day25::new()) }
Ok(val) => {
panic!("Unimplemented day {}", val)
},