Факториал в Go
Пример для версий
gc-2010-07-14
В примере показаны рекурсивный и итеративный способы вычисления факториала, а также создание обобщенной функции, которая выводит их результаты универсальным способом.
package main
import "fmt"
//Recursive Factorial
func factr(n uint64) uint64 {
if (n < 2) { return 1 }
return n * factr(n-1)
}
//Iterative Factorial
func facti(n uint64) uint64 {
var ret uint64 = 1
for ; n > 0; n-- {
ret *= n
}
return ret
}
func printFact(fact func(uint64) uint64) {
for i := 0; i < 17; i++ {
fmt.Printf("%d! = %d\n", i, fact(uint64(i)))
}
}
func main() {
printFact(factr)
fmt.Println("--")
printFact(facti)
}
Комментарии
]]>blog comments powered by Disqus
]]>