7.25 拼多多笔试第三题 无限数字集合求指教
题意:
1、初始集合有一个元素A
2、集合中每个元素X,X+B也属于集合
3、集合中每个元素X,X*C也属于集合
问Q是不是集合的元素?
如下代码,想用dfs解决,结果一直说超出内存限制,猜测是递归结束条件可能没写对,导致一直递归调用,但想不出来到底哪不对,网牛友指教。😣
func main() { n := 0 fmt.Scan(&n) for i:=0; i<n; i++ { A, B, C, Q := 0, 0, 0, 0 fmt.Scan(&A, &B, &C, &Q) if dfs(A, B, C, Q) { fmt.Println(1) } else { fmt.Println(0) } } } func dfs(A, B, C, Q int) bool { if Q == A { return true } if Q < A { return false } return dfs(A, B, C, Q-B) || dfs(A, B, C, Q/C) }