Skip to content

Instantly share code, notes, and snippets.

@lnmunhoz
Last active July 2, 2017 01:23
Show Gist options
  • Save lnmunhoz/0660fb6efc7210fbfd07748264c0e658 to your computer and use it in GitHub Desktop.
Save lnmunhoz/0660fb6efc7210fbfd07748264c0e658 to your computer and use it in GitHub Desktop.
Coding Dojo - 29/10/2016

#Fizz Buzz

  • weslley39
  • lnmunhoz

##Elixir

defmodule FizzBuzz do
  def run(n) when (rem(n, 3) == 0) and (rem(n, 5) == 0) do
    IO.puts("FizzBuzz")
    run(n - 1)
  end

  def run(n) when rem(n, 3) == 0 do
    IO.puts("Fizz")
    run(n - 1)
  end

  def run(n) when rem(n, 5) == 0 do
    IO.puts("Buzz")
    run(n - 1)
  end

  def run(n) when n == 1 do
    IO.puts(n)
  end

  def run(n) do
    IO.puts(n)
    run(n - 1)
  end
end

FizzBuzz.run(100)

##GoLang

package main

import "fmt"

func main() {
  for i := 1; i <= 100; i++ {
    if i % 3 == 0 && i % 5 == 0 {
      fmt.Println("FizzBuzz")
    } else if  i % 3 == 0 {
      fmt.Println("Fizz")
    } else if i % 5 == 0 {
      fmt.Println("Fizz")
    } else {
      fmt.Println(i)
    }
  }
}

#ScalarProduct

package main

import "fmt"

func main() {
  calcArray([]int{1, 2}, []int{1, 2})
}

func calcArray(array1 []int, array2 []int) {
  sum := 0
  if len(array1) != len(array2) {
    fmt.Println("Errrrou");
    return;  
  }

  for i := 0; i < len(array1); i++ {
    sum = sum + array1[i] * array2[i]; 
  }
  fmt.Printf("Total: %d", sum)
}

Elixir

defmodule ScalarProduct do
  def run(array1, array2) when length(array1) != length(array2) do
    IO.puts('The lists must have the same length.');
  end

  def run(array1, array2) do
    run(array1, array2, length(array1) - 1, 0)
  end

  def run(array1, array2, index, sum) when index != -1 do
    sumArray = sum + Enum.at(array1, index) * Enum.at(array2, index)
    run(array1, array2, index - 1, sumArray)
  end

  def run(array1, array2, index, sum) do
    IO.puts("Total: #{to_string(sum)}")
  end
end

ScalarProduct.run([1, 2, 3], [1, 2, 3])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment