diff --git a/03_recursion/rust/01_countdown/Cargo.toml b/03_recursion/rust/01_countdown/Cargo.toml index 076bdcd..9d582e3 100644 --- a/03_recursion/rust/01_countdown/Cargo.toml +++ b/03_recursion/rust/01_countdown/Cargo.toml @@ -7,3 +7,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +num-traits = "0.2" \ No newline at end of file diff --git a/03_recursion/rust/01_countdown/src/main.rs b/03_recursion/rust/01_countdown/src/main.rs index 2fdb117..84ae0e7 100644 --- a/03_recursion/rust/01_countdown/src/main.rs +++ b/03_recursion/rust/01_countdown/src/main.rs @@ -1,10 +1,15 @@ -fn countdown(i: u32) { +use std::ops::Sub; +use std::fmt::Display; +use num_traits::identities::One; +use num_traits::identities::Zero; + +fn countdown>(i: T) { println!("{}", i); - if i == 0 { + if i.is_zero() { return } - countdown(i - 1); + countdown(i - T::one()); } fn main() {