【華爲機試題】請在123456789之間添加+號或者-號,也可以什麼都不填,使得等式的運算結果等於a。要求程序輸出等式成立的個數b。測試用例:a=5時,b=21。

java實現代碼:

import java.util.Scanner;


public class equation {


public static void main(String[] args) {
// TODO Auto-generated method stub
// String string = "123+4+5+67-89";
Scanner console = new Scanner(System.in);
int a= console.nextInt();
int count=0;
char [] array = { ' ', '+', '-' };
char num[] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
for (char x1 : array)
for (char x2 : array)
for (char x3 : array)
for (char x4 : array)
for (char x5 : array)
for (char x6 : array)
for (char x7 : array)
for (char x8 : array) {
int result = 0;
char s[] = { x1, x2, x3, x4, x5, x6,
x7, x8 };

String string = "";
for (int i = 0; i <= 7; i++) {
string = string + num[i] + s[i];
}

string = string + num[8];
string = string.replaceAll(" ", "");


String[] add = string.split("\\+");
int sum = 0;

for (String t : add) {
String[] sub = t.split("-");
int num1 = Integer.parseInt(sub[0]);
// 計算負數
for (int i = 1; i < sub.length; i++) {
num1 -= Integer.parseInt(sub[i]);
}
sum += num1; // 正數或負數結果 加到 總和上
}

if (sum == a) {
System.out.println(string + "=" + a);
count++;
}

}
System.out.println("個數是"+count);
}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章