Happy go year.
2016年お年玉問題(AB x CD / E - F * G * H = 2016 を満たす全パターン洗い出し問題)
を golang で解きました。PC 使うなってなってるけど、全然気になりません。
package main
import (
"fmt"
"strconv"
"github.com/fighterlyt/permutation"
)
// AB x CD / E - F * G * H = 2016
func main() {
i := []int{2, 3, 4, 5, 6, 7, 8, 9}
p, err := permutation.NewPerm(i, nil) //generate a Permutator
if err != nil {
fmt.Println(err)
return
}
for i, err := p.Next(); err == nil; i, err = p.Next() {
ar := i.([]int)
// fmt.Printf("%3d permutation: %v left %d\n", p.Index()-1, ar, p.Left())
ab, _ := strconv.Atoi(fmt.Sprintf("%d%d", ar[0], ar[1]))
cd, _ := strconv.Atoi(fmt.Sprintf("%d%d", ar[2], ar[3]))
e := ar[4]
f := ar[5]
g := ar[6]
h := ar[7]
if ab*cd/e-f*g*h == 2016 {
fmt.Printf("%v\n", ar)
}
}
}
permutation を自分で書こうと思ったんですが、見つけてしまったので、使わせてもらいました。