题意
给出一个矩阵,#表示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]) } }