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() {
|
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