Hi there! Here I am coding again. For those of you readers who may not know what recursion is, I have a brief explanation: a function is called a recursive function when it calls itself. A very nice example is the factorial, which is also what I am going to code today. For the factorial of $N$, $f(N)$, we can state that $f(N) = N\times f(N-1)$. What we see is that the function is represented by itself, but with other argument and it can keep this going up to a certain point for which we know the answer like $f(1)=f(0)=1$. Given this introduction, I will code.

package main

import "fmt"

// N > 0 always!
func factorial(N uint) uint {
  if N > 1 {
   return N * factorial(N-1)
  }
  return 1
}

func main() {

  var N uint
  fmt.Scanln(&N)
  fmt.Printf("%d\n", factorial(N))

}

Usually I say what point I had difficulties, but I confess I had no problems with this one today. Thanks for reading! If you have any doubts, critics or suggestions, let me know!