题目
这个算式中AI代表19的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
代码
public static int res;
public static boolean check(int[] arr) {
int A = arr[0];
int B = arr[1];
int C = arr[2];
int D = arr[3] * 100 + arr[4] * 10 + arr[5];
int E = arr[6] * 100 + arr[7] * 10 + arr[8];
// A + B/C + D/E == 10
if(B*E + C*D == (10 - A) * C * E) {
return true;
}
return false;
}
public static void f(int[] arr, int k) {
if (k >= arr.length) {
if (check(arr)) {
res += 1;
}
return;
}
for (int i = k; i < arr.length; i++) {
int t = arr[k];
arr[k] = arr[i];
arr[i] = t;
f(arr, k + 1);
t = arr[k];
arr[k] = arr[i];
arr[i] = t;
}
}
public static void main(String[] args) {
f(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 0);
System.out.println(res);
}
}
输出
29