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!