题意
给出一个矩阵,#表示1,.表示0,每4位看作二进制,求十进制
思路
直接模拟即可,这里是先把矩阵转化为只有0和1的数组,然后从头开始遍历,每次取4位按照1 2 4 8 的数位求出十进制数字的值
Go代码
package main
import (
"fmt"
"math"
)
func main() {
var n int
fmt.Scan(&n)
var s string
tmp := make([]int,0,n)
for i := 0; i < int(math.Pow(2,float64(n))); i ++ {
fmt.Scan(&s)
for j := 0; j < len(s); j ++ {
if s[j] == '#' {
tmp = append(tmp,1)
}else{
tmp = append(tmp,0)
}
}
}
//fmt.Println(tmp)
for i := 0; i < len(tmp); i += 4 {
//1 2 4 8
fmt.Printf("%d ",tmp[i]*8+tmp[i+1]*4+tmp[i+2]*2+tmp[i+3])
}
}

京公网安备 11010502036488号