add is_even and is_odd recursive functions
This commit is contained in:
39
src/main.rs
39
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user