Factorial

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "fmt" ) // n * n-1 func factorial(n int) int { var total = 1 for i := n; i >= 1; i-- { total *= i } return total } // 5 * 1 = 5 * 4 = 20 * 3 = 60 * 2 = 120 * 1 = 120 func factorialRecursive(n int) int { if n < 1 { return 1 } return n * factorialRecursive(n -1) } func factorialTailRecursive(total, value int) int { if value < 1 { return total } return factorialTailRecursive(total * value, value -1) } func main() { fmt.Println(factorial(7)) fmt.Println(factorialRecursive(6)) fmt.Println(factorialTailRecursive(1, 5)) }
Editor Settings
Theme
Key bindings
Full width
Lines