输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。
1 2 3 4 5 6 7 8 9 = X
比如:
12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 = 5
请编写程序,统计满足输入整数的所有整数个数。
输入: 正整数,等式右边的数字
输出: 使该等式成立的个数
样例输入:5
样例输出:21
int cnt = 0;
void dfs(int x, int cur, int sum, int tmp){
if (cur > 8){
if (sum + cur == x || sum - cur == x){
cnt++;
}
return;
}
dfs(x, cur + 1, sum, tmp * 10 + cur);
dfs(x, cur + 1, sum + tmp, cur);
dfs(x, cur + 1, sum - tmp, cur);
}
int main(){
dfs(5, 2, 1, 1);
cout << cnt << endl;
return 0;
}