diff --git a/src/dynamic_programming/mod.rs b/src/dynamic_programming/mod.rs new file mode 100644 index 0000000..31a5f09 --- /dev/null +++ b/src/dynamic_programming/mod.rs @@ -0,0 +1,23 @@ +pub fn fibonacci(x: u32) -> u32 { + if x == 1 || x == 2 { + 1 + } else { + fibonacci(x - 1) + fibonacci(x - 2) + } +} + +#[cfg(test)] +mod test { + use super::*; + + use crate::dynamic_programming::fibonacci; + + #[test] + fn test_fibonacci() { + assert_eq!(fibonacci(1), 1); + assert_eq!(fibonacci(2), 1); + assert_eq!(fibonacci(3), 2); + assert_eq!(fibonacci(4), 3); + assert_eq!(fibonacci(5), 5); + } +} diff --git a/src/lib.rs b/src/lib.rs index 5965c88..8880e0b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,5 @@ pub mod daily_challenges; +pub mod dynamic_programming; pub mod graph; pub mod hash_map; pub mod linked_list;