给定数字N和M,你需要从数字1到N的序列中添加+或-,使得序列的和等于M。
打印出所有满足此关系的序列,例如,给定N=4 M=6,则满足条件得序列是1-2+3+4=6(一定存在此序列)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| void dfs(int u) { if (exceed_already()) { return false; }
if (u == n) { return true; }
cmd[u] = 1; if (dfs(u + 1)) { return true; } cmd[u] = 0; return dfs(u + 1); }
|