factorial.go 498 B

12345678910111213141516171819202122232425262728293031323334
  1. // factorial.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. func main() {
  7. for i := uint64(0); i < uint64(30); i++ {
  8. fmt.Printf("Factorial of %d is %d\n", i, Factorial(i))
  9. }
  10. }
  11. /* unnamed return variables:
  12. func Factorial(n uint64) uint64 {
  13. if n > 0 {
  14. return n * Factorial(n-1)
  15. }
  16. return 1
  17. }
  18. */
  19. // named return variables:
  20. func Factorial(n uint64) (fac uint64) {
  21. fac = 1
  22. if n > 0 {
  23. fac = n * Factorial(n-1)
  24. return
  25. }
  26. return
  27. }
  28. // int: correct results till 12!
  29. // uint64: correct results till 21!