/****************************************************************************** * @file day_0.rs * @author Joey Pollack * @date 2025/11/20 (y/m/d) * @modified 2025/11/20 (y/m/d) * @copyright Joseph R Pollack (2025) * @brief pre-advent testing ******************************************************************************/ use solver::solver::Solver; pub struct Day0; impl Solver for Day0 { fn init(&mut self, _config: solver::solver::SolverState) -> Result<(), String> { return Ok(()) // todo!("Day0::init()") } fn solve(&mut self, _input: String) -> Result { let fibs = gen_fib_seq(50, std::i64::MAX / 2); println!("fib nums:"); print_fibs(fibs); Ok(0) } fn name(&self) -> String { "Day 0".to_string() } } impl Day0 { pub fn new() -> Day0 { Day0 {} } } // Helpers /// stop_after: the number of fib values to generate /// max_val: the maximum fib value to generate. Forces the function to /// return even if stop_after is not met. fn gen_fib_seq(stop_after: i32, max_val: i64) -> Vec { let mut a: i64 = 1; let mut b: i64 = 1; let mut nums: Vec = vec![]; nums.push(a); for _ in 0..stop_after -1 { nums.push(b); let t = b; b = a + b; a = t; if b >= max_val { break; } } nums } fn print_fibs(fibs: Vec) { for (i, f) in fibs.iter().enumerate() { println!("{}: {}", i + 1, f); } }