Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
33
Task/Bernoulli-numbers/Go/bernoulli-numbers.go
Normal file
33
Task/Bernoulli-numbers/Go/bernoulli-numbers.go
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func b(n int) *big.Rat {
|
||||
var f big.Rat
|
||||
a := make([]big.Rat, n+1)
|
||||
for m := range a {
|
||||
a[m].SetFrac64(1, int64(m+1))
|
||||
for j := m; j >= 1; j-- {
|
||||
d := &a[j-1]
|
||||
d.Mul(f.SetInt64(int64(j)), d.Sub(d, &a[j]))
|
||||
}
|
||||
}
|
||||
return f.Set(&a[0])
|
||||
}
|
||||
|
||||
func align(b *big.Rat, w int) string {
|
||||
s := b.String()
|
||||
return strings.Repeat(" ", w-strings.Index(s, "/")) + s
|
||||
}
|
||||
|
||||
func main() {
|
||||
for n := 0; n <= 60; n++ {
|
||||
if b := b(n); b.Num().BitLen() > 0 {
|
||||
fmt.Printf("B(%2d) =%s\n", n, align(b, 45))
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue