From 5d14e86f4a5e9fb5682aa338616f823264788dfa Mon Sep 17 00:00:00 2001 From: laurens Date: Sat, 2 May 2020 19:24:30 +0200 Subject: [PATCH] Add fibonacci number generator --- fibonacci/Cargo.toml | 9 +++++++++ fibonacci/src/main.rs | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 fibonacci/Cargo.toml create mode 100644 fibonacci/src/main.rs diff --git a/fibonacci/Cargo.toml b/fibonacci/Cargo.toml new file mode 100644 index 0000000..4d92c30 --- /dev/null +++ b/fibonacci/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "fibonacci" +version = "0.1.0" +authors = ["laurens "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/fibonacci/src/main.rs b/fibonacci/src/main.rs new file mode 100644 index 0000000..b20ed06 --- /dev/null +++ b/fibonacci/src/main.rs @@ -0,0 +1,32 @@ +use std::io; + +const FIB_0: u32 = 0; +const FIB_1: u32 = 1; + +fn generate_fib_number(n: u32) -> u32 { + if n == 0 { + FIB_0 + } else if n == 1 { + FIB_1 + } else { + generate_fib_number(n - 1) + generate_fib_number(n - 2) + } +} + +fn print_fib_sequence(n: u32) { + println!("Just for lullz, a sequence of {} fibonacci numbers", n); + for n in 0..n { + println!("{}: {}", n, generate_fib_number(n)); + } +} + +fn main() { + let mut n = String::new(); + + println!("Input number of fibonacci numbers to generate:"); + io::stdin().read_line(&mut n).expect("Failed to read user input"); + + let n: u32 = n.trim().parse().expect("Not a number!"); + + print_fib_sequence(n); +}