Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
22
Task/Factorial/Go/factorial-1.go
Normal file
22
Task/Factorial/Go/factorial-1.go
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println(factorial(800))
|
||||
}
|
||||
|
||||
func factorial(n int64) *big.Int {
|
||||
if n < 0 {
|
||||
return nil
|
||||
}
|
||||
r := big.NewInt(1)
|
||||
var f big.Int
|
||||
for i := int64(2); i <= n; i++ {
|
||||
r.Mul(r, f.SetInt64(i))
|
||||
}
|
||||
return r
|
||||
}
|
||||
15
Task/Factorial/Go/factorial-2.go
Normal file
15
Task/Factorial/Go/factorial-2.go
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func factorial(n int64) *big.Int {
|
||||
var z big.Int
|
||||
return z.MulRange(1, n)
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Println(factorial(800))
|
||||
}
|
||||
17
Task/Factorial/Go/factorial-3.go
Normal file
17
Task/Factorial/Go/factorial-3.go
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
)
|
||||
|
||||
func factorial(n float64) float64 {
|
||||
return math.Gamma(n + 1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
for i := 0.; i <= 10; i++ {
|
||||
fmt.Println(i, factorial(i))
|
||||
}
|
||||
fmt.Println(100, factorial(100))
|
||||
}
|
||||
26
Task/Factorial/Go/factorial-4.go
Normal file
26
Task/Factorial/Go/factorial-4.go
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
func lfactorial(n float64) float64 {
|
||||
l, _ := math.Lgamma(n + 1)
|
||||
return l
|
||||
}
|
||||
|
||||
func factorial(n float64) *big.Float {
|
||||
i, frac := math.Modf(lfactorial(n) * math.Log2E)
|
||||
z := big.NewFloat(math.Exp2(frac))
|
||||
return z.SetMantExp(z, int(i))
|
||||
}
|
||||
|
||||
func main() {
|
||||
for i := 0.; i <= 10; i++ {
|
||||
fmt.Println(i, factorial(i))
|
||||
}
|
||||
fmt.Println(100, factorial(100))
|
||||
fmt.Println(800, factorial(800))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue