From c8ae4edc5c769fd262e701b858345c199287ded3 Mon Sep 17 00:00:00 2001 From: Shea Frembling Date: Tue, 3 Mar 2026 09:00:31 -0600 Subject: [PATCH] add is_even and is_odd recursive functions (#1) Reviewed-on: http://192.168.1.227:3000/sfrembling/timeshift/pulls/1 Co-authored-by: Shea Frembling Co-committed-by: Shea Frembling --- src/main.rs | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index e7a11a9..9642ac8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,40 @@ fn main() { - println!("Hello, world!"); + let src = 12; + let result = is_even(src); + println!("{src} is even? {result}"); +} + +fn is_even(n: u32) -> bool { + match n { + 0 => true, + 1 => false, + _ => is_odd(n - 1), + } +} + +fn is_odd(n: u32) -> bool { + match n { + 0 => false, + 1 => true, + _ => is_even(n - 1), + } +} + +#[cfg(test)] +mod tests { + use crate::{is_even, is_odd}; + + #[test] + fn it_works() { + let src = 12; + let result = is_even(src); + assert!(result); + } + + #[test] + fn it_works_again() { + let src = 5; + let result = is_odd(src); + assert!(result); + } }