Add Fibonacci
parent
cf1fe4314f
commit
df97d975bc
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "fibonacci"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
@ -0,0 +1,39 @@
|
||||
use std::io;
|
||||
|
||||
fn main() {
|
||||
fibonacci();
|
||||
}
|
||||
|
||||
fn fibonacci() {
|
||||
let (start, end): (u32, u32) = get_fibonacci_range();
|
||||
print!("{}..{} Fibonacci Numbers: [", start, end);
|
||||
|
||||
for index in start..=end {
|
||||
if index == end {
|
||||
print!("{}", get_next_num(index));
|
||||
} else {
|
||||
print!("{}, ", get_next_num(index));
|
||||
}
|
||||
}
|
||||
|
||||
print!("]");
|
||||
}
|
||||
|
||||
fn get_next_num(n: u32) -> u32 {
|
||||
if n == 0 || n == 1 {
|
||||
return n;
|
||||
}
|
||||
return get_next_num(n - 1) + get_next_num(n - 2);
|
||||
}
|
||||
|
||||
fn get_fibonacci_range() -> (u32, u32) {
|
||||
let mut buffer: String = String::new();
|
||||
|
||||
println!("Enter Range of Fibonacci Numbers To View\nFormat -> [u32 u32] E.g 1 5");
|
||||
io::stdin()
|
||||
.read_line(&mut buffer)
|
||||
.expect("Failed To Read In Line");
|
||||
|
||||
let ranges: Vec<&str> = buffer.split(" ").collect();
|
||||
return (ranges[0].trim().parse().unwrap(), ranges[1].trim().parse().unwrap());
|
||||
}
|
Loading…
Reference in New Issue