[蓝桥杯2016初赛]凑算式
题目描述
这个算式中AI代表19的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
输出
输出一个整数表示答案
package pro;
import java.util.Scanner;
public class Main {
static int arr[] = {1,2,3,4,5,6,7,8,9};
static int vis[] = new int[9];
static int[] res = new int[9];
static int cnt = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
dps(0);
System.out.println(cnt);
}
static void dps(int i) {
if(i==9) {
if(test()) {
// for(int a:res)
// System.out.print(a+" ");
// System.out.println();
cnt++;
}
}
for(int j = 0; j < 9; j++) {
if(vis[j]==0) {
vis[j] = 1;
res[i] = arr[j];
dps(i+1);
vis[j] = 0;
}
}
}
static boolean test() {
double a = res[3]*100+res[4]*10+res[5];
double b = res[6]*100+res[7]*10+res[8];
double num = res[0]+(double)res[1]/res[2]+a/b;
if(num==10)
return true;
return false;
}
}
全排列+判断
注:题目中的除法不是取整
2021-01-30