B DEF
A + --- + ------- = 10
C GHI
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
答案是:29
解:
public class Adajimu {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int sum = 0;
int[] q = new int[10];
for (int a = 1; a <= 9; a++)
for (int b = 1; b <= 9; b++)
for (int c = 1; c <= 9; c++)
for (int d = 1; d <= 9; d++)
for (int e = 1; e <= 9; e++)
for (int f = 1; f <= 9; f++)
for (int g = 1; g <= 9; g++)
for (int h = 1; h <= 9; h++)
da: for (int i = 1; i <= 9; i++) {
q[a]++;
q[b]++;
q[c]++;
q[d]++;
q[e]++;
q[f]++;
q[g]++;
q[h]++;
q[i]++;
// 判断是否有数字重复
for (int k = 1; k <= 9; k++)
if (q[k] != 1) {
Arrays.fill(q, 0);
continue da;
}
// 要把全部变成double,不然会有很大误差
double x = a;
double y = (double) b / (double) c;
double shang = 100 * d + 10 * e + f;
double xia = 100 * g + 10 * h + i;
double z = x + y + shang / xia;
if (z == 10)
sum++;
}
System.out.println(sum);
}
}