You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.3 KiB
Rust

3 weeks ago
/******************************************************************************
* @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<u64, String>
{
let fibs = gen_fib_seq(50, std::i64::MAX / 2);
println!("fib nums:");
print_fibs(fibs);
3 weeks ago
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<i64>
{
let mut a: i64 = 1;
let mut b: i64 = 1;
let mut nums: Vec<i64> = 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<i64>)
{
for (i, f) in fibs.iter().enumerate()
{
println!("{}: {}", i + 1, f);
}
3 weeks ago
}