]]> ]]>

Факториал в 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

]]>

Работа программистам