mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 07:02:11 +08:00
35 lines
532 B
Go
Executable File
35 lines
532 B
Go
Executable File
// factorial.go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func main() {
|
|
for i := uint64(0); i < uint64(30); i++ {
|
|
fmt.Printf("Factorial of %d is %d\n", i, Factorial(i))
|
|
}
|
|
}
|
|
|
|
/* unnamed return variables:
|
|
func Factorial(n uint64) uint64 {
|
|
if n > 0 {
|
|
return n * Factorial(n-1)
|
|
}
|
|
return 1
|
|
}
|
|
*/
|
|
|
|
// named return variables:
|
|
func Factorial(n uint64) (fac uint64) {
|
|
fac = 1
|
|
if n > 0 {
|
|
fac = n * Factorial(n-1)
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
// int: correct results till 12!
|
|
// uint64: correct results till 21!
|