您的位置:首页 > 其它

PAT 5 凑算式(dfs)

2018-03-18 13:26 232 查看

凑算式


这个算式中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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法基础