ima/2025-10-08/binaerzaehler2.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package main
import (
"fmt"
)
func createArr(nptr *int) *[][]bool {
arr := make([][]bool, (1 << *nptr))
for i := range arr {
arr[i] = make([]bool, *nptr)
}
for row := 1; row < len(arr); row++ {
copy(arr[row], arr[row-1])
column:
for column := range arr[row]{
if arr[row][column] == false {
arr[row][column] = true
break column
} else {
arr[row][column] = false
}
}
}
return &arr
}
func readArr(arrptr *[][]bool, kpttr *int) *[][]bool {
var validRows [][]bool
counter := 0
for row := range *arrptr {
counter = 0
for column := range (*arrptr)[row] {
if (*arrptr)[row][column] == true {
counter++
}
}
if counter == *kpttr {
validRows = append(validRows, (*arrptr)[row])
}
}
return &validRows
}
func main() {
n := 4
k := 3
arrptr := createArr(&n)
fmt.Println(*arrptr)
validRowpttr := readArr(arrptr, &k)
fmt.Println(*validRowpttr)
}
|