凑算式
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。A-I代表1-9的数字,不是0-9
答案:
public class Main{
private static int[] a;
private static int sum = 0;
private static int[] visited;
public static void dfs(int step) {
a = new int[10];
visited = new int[10];
if (step == 10) {
if (a[1] + a[2] / a[3] + (a[4] * 100 + a[5] * 10 + a[6])
/ (a[7] * 100 + a[8] * 10 + a[9]) == 10) {
sum++;
}
return;
}
for (int i = 1; i <=9; i++) {
if (visited[i] == 0) {
a[step] = i;
visited[i] = 1;
dfs(step + 1);
visited[i] = 0;
}
}
return;
}
public static void main(String[] args) {
dfs(1);
System.out.println(sum);
}
有错
Exception in thread "main" java.lang.ArithmeticException: / by zero