题目大意:
给 1 - n 的数字,在其中添加 {'+', '-', ' '},使其最终值为0
思路很简单,
因为 n <= 9, 所以可以dfs先生成所有可能的情况组合
然后对于每个组合去判断值是否为 0
因为感觉空格稍稍有点麻烦(...),就用了栈,还是挺轻松就搞定了的
AC代码如下:
/*
PROB: zerosum
LANG: C++
ID: fan_0111
*/
#include <iostream>
#include <stack>
#include <cstdio>
using namespace std;
char ch[3] = {' ', '+', '-'};
int a[110], n;
stack<int> digit;
stack<char> sign;
bool check() {
while (!digit.empty()) digit.pop();
while (!sign.empty()) sign.pop();
for (int i = 0; i < 2*n; ++i) {
if (a[i] >= 1 && a[i] <= n) { digit.push(a[i]);