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)