From 024822a6c9d0f23614230fb793033d1a1f0e20aa Mon Sep 17 00:00:00 2001 From: Nicholas Turner Date: Sun, 21 Jul 2024 11:47:24 -0400 Subject: [PATCH] commit => elixir_fibonacci.exs , ruby_fibonacci_recursive.rb --- fibonacci_series/Elixir/elixir_fibonacci.exs | 29 +++++++++++++++++++ .../Ruby/ruby_fibonacci_recursive.rb | 18 ++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 fibonacci_series/Elixir/elixir_fibonacci.exs create mode 100644 fibonacci_series/Ruby/ruby_fibonacci_recursive.rb diff --git a/fibonacci_series/Elixir/elixir_fibonacci.exs b/fibonacci_series/Elixir/elixir_fibonacci.exs new file mode 100644 index 0000000..def8848 --- /dev/null +++ b/fibonacci_series/Elixir/elixir_fibonacci.exs @@ -0,0 +1,29 @@ +defmodule Fibonacci do + def generate(num) when num <= 0 do + IO.puts "Invalid number supplied." + end + + def generate(num) do + generate_sequence(num, 0, 1) + end + + defp generate_sequence(0, _num_one, _num_two) do + :ok + end + + defp generate_sequence(num, num_one, num_two) do + IO.write("#{num_one} ") + generate_sequence(num - 1, num_two, num_one + num_two) + end +end + +defmodule Main do + def run do + IO.write("Enter amount of numbers needed from the fibonacci series: ") + input = IO.gets("") |> String.trim() + num = String.to_integer(input) + Fibonacci.generate(num) + end +end + +Main.run() diff --git a/fibonacci_series/Ruby/ruby_fibonacci_recursive.rb b/fibonacci_series/Ruby/ruby_fibonacci_recursive.rb new file mode 100644 index 0000000..5d95c9c --- /dev/null +++ b/fibonacci_series/Ruby/ruby_fibonacci_recursive.rb @@ -0,0 +1,18 @@ +def fib(n, memo = {0 => 0, 1 => 1, 2 => 1}) + memo[n] ||= fib(n - 1, memo) + fib(n - 2, memo) +end + +def fibonacci_series(num) + if num <= 0 + puts "Invalid number supplied." + return + end + + (0...num).each do |i| + print "#{fib(i)} " + end +end + +print "Enter amount of numbers needed from the fibonacci series: " +num = gets.to_i +fibonacci_series(num)