在数字间填入加号或者减号,使等式成立 (三)

2014-11-24 10:38:36 · 作者: · 浏览: 1
) {
if(n==9){ // 修改完最后一位符号时输出
check(v);
}else{ // 递归向后修改,数字 变为 数字加符号
fun(v.replace(n+"", n+"+"),n+1);
fun(v.replace(n+"", n+"-"),n+1);
fun(v,n+1);
}
}
// 验证 并 输出
public static void check(String str){
String[] add = str.split("\\+");
int sum = 0;
for(String t:add){
String[] sub = t.split("-");
int num = Integer.parseInt(sub[0]);
// 计算负数
for(int i=1;i num -= Integer.parseInt(sub[i]);
}
sum += num; // 正数或负数结果 加到 总和上
}
if(sum == 110){
System.out.println(str);
}
}
public static void main(String[] args){
String str = "123456789";
fun(str,1); // 调用函数,从1开始修改
}
}
[java]
1-2+3+45-6+78-9
1+234-56-78+9
1+2+34+5+67-8+9
12-3+4-5+6+7+89
123-4-5+6+7-8-9
12+3+45+67-8-9
123+4+5+67-89
12+34+56+7-8+9
123-4+5-6-7+8-9
123+4-5-6-7-8+9

1-2+3+45-6+78-9
1+234-56-78+9
1+2+34+5+67-8+9
12-3+4-5+6+7+89
123-4-5+6+7-8-9
12+3+45+67-8-9
123+4+5+67-89
12+34+56+7-8+9
123-4+5-6-7+8-9
123+4-5-6-7-8+9