Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
38
Task/Population-count/Go/population-count-1.go
Normal file
38
Task/Population-count/Go/population-count-1.go
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/bits"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Pop counts, powers of 3:")
|
||||
n := uint64(1) // 3^0
|
||||
for i := 0; i < 30; i++ {
|
||||
fmt.Printf("%d ", bits.OnesCount64(n))
|
||||
n *= 3
|
||||
}
|
||||
fmt.Println()
|
||||
fmt.Println("Evil numbers:")
|
||||
var od [30]uint64
|
||||
var ne, no int
|
||||
for n = 0; ne+no < 60; n++ {
|
||||
if bits.OnesCount64(n)&1 == 0 {
|
||||
if ne < 30 {
|
||||
fmt.Printf("%d ", n)
|
||||
ne++
|
||||
}
|
||||
} else {
|
||||
if no < 30 {
|
||||
od[no] = n
|
||||
no++
|
||||
}
|
||||
}
|
||||
}
|
||||
fmt.Println()
|
||||
fmt.Println("Odious numbers:")
|
||||
for _, n := range od {
|
||||
fmt.Printf("%d ", n)
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
13
Task/Population-count/Go/population-count-2.go
Normal file
13
Task/Population-count/Go/population-count-2.go
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
func pop64(w uint64) int {
|
||||
const (
|
||||
ff = 1<<64 - 1
|
||||
mask1 = ff / 3
|
||||
mask3 = ff / 5
|
||||
maskf = ff / 17
|
||||
maskp = maskf >> 3 & maskf
|
||||
)
|
||||
w -= w >> 1 & mask1
|
||||
w = w&mask3 + w>>2&mask3
|
||||
w = (w + w>>4) & maskf
|
||||
return int(w * maskp >> 56)
|
||||
}
|
||||
7
Task/Population-count/Go/population-count-3.go
Normal file
7
Task/Population-count/Go/population-count-3.go
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
func pop64(w uint64) (c int) {
|
||||
for w != 0 {
|
||||
w &= w - 1
|
||||
c++
|
||||
}
|
||||
return
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue