题目描述
这个算式中AI代表19的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
输出
输出一个整数表示答案
public class Main{
static int flag[] = new int[9]; //标记
static int num = 0;
public static void main(String[] args){
fun();
}
public static void fun() {
int a[] = new int[9];
dfs(0,a);
System.out.println(num);
}
public static void dfs(int n,int a[]) {
if(n == 9) {
if(result(a)) {
num++;
}
return;
}
for(int i = 1; i <= 9; i++) {
if(flag[i-1] == 0) {
flag[i-1] = 1;
a[n] = i;
dfs(n+1,a);
flag[i-1] = 0;
}
}
}
public static boolean result(int a[]) {
int A = a[0];
double BGHI = a[1] * 1.0 * (a[6]*100+a[7]*10+a[8]);
double CDEF = a[2] * 1.0 * (a[3]*100+a[4]*10+a[5]);
double CGHI = a[2] * 1.0 * (a[6]*100+a[7]*10+a[8]);
double m = A + (BGHI+CDEF)/CGHI;
return 10 == m;
}
}
答案: 29