1 2 3 4 5 6 7 8 9 = 110 要求数字之间只能为 + 或 - 或 把数字连接起来 ,列出所有可能性

1 2 3 4 5 6 7 8 9 = 110 要求数字之间只能为 + 或 - 或 把数字连接起来 ,列出所有可能性

public class Test {
	String strFormula = "";
	
	public void addsign(int a){
		if(a == 0)
			strFormula += "+";
		else if(a == 1)
			strFormula += "-";
		else
			strFormula += "";
	}
	public void compute(){
		int sum = 0;
		String number = "";
		String sign = "";
		for (int i = 0; i < strFormula.length(); i++) {
			char h = strFormula.charAt(i);
			if(h >= '1' && h <= '9'){
				number += String.valueOf(h);
			}else{
				if(sign.equals("")){
					sign = String.valueOf(h);
					sum = Integer.parseInt(number);
					number = "";
				}else{
					if(sign.equals("+"))
						sum = sum + Integer.parseInt(number);
					else if(sign.equals("-"))
						sum = sum - Integer.parseInt(number);
					number = "";
					sign = String.valueOf(h);
				}
			}
		}
		if(sum == 110)
			System.out.println(strFormula + sum);
	}
	public static void main(String[] srg) {
		Test a = new Test();
		for (int i1 = 0; i1 < 3; i1++) {
			
			for (int i2 = 0; i2 < 3; i2++) {
				
				for (int i3 = 0; i3 < 3; i3++) {
					
					for (int i4 = 0; i4 < 3; i4++) {
						
						for (int i5 = 0; i5 < 3; i5++) {
							
							for (int i6 = 0; i6 < 3; i6++) {
								
								for (int i7 = 0; i7 < 3; i7++) {
									
									for (int i8 = 0; i8 < 3; i8++) {
										a.strFormula = "1";
										a.addsign(i1);
										a.strFormula += "2";
										a.addsign(i2);
										a.strFormula += "3";
										a.addsign(i3);
										a.strFormula += "4";
										a.addsign(i4);
										a.strFormula += "5";
										a.addsign(i5);
										a.strFormula += "6";
										a.addsign(i6);
										a.strFormula += "7";
										a.addsign(i7);
										a.strFormula += "8";
										a.addsign(i8);
										a.strFormula += "9=";
										a.compute();
										//System.out.println(a.strFormula);
									}	
								}	
							}	
						}	
					}	
				}	
			}
		}
	}
}

 


答案:

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

posted @ 2012-06-09 17:37  Jawn  阅读(536)  评论(1编辑  收藏  举报