[藍橋杯2016初賽]湊算式
阿新 • • 發佈:2021-02-09
技術標籤:java刷題
題目描述
這個算式中AI代表19的數字,不同的字母代表不同的數字。
比如:
6+8/3+952/714 就是一種解法,5+3/1+972/486 是另一種解法。
這個算式一共有多少種解法?
輸出
輸出一個整數表示答案
public class Main {
static int max=10;
static double array[]=new double[max];
static int cnt=0;
public static void main(String[] args) {
Main e=new Main();
e.check(1);
System. out.println(e.cnt);
}
public void check(int n) {
if(n==10) {
cal();
return;
}
for(int i=1;i<max;i++) {
array[n]=i;
if(judge(n)) {
check(n+1);
}
}
}
public boolean judge(int n) {
for(int i=1;i<n;i++) {
if(array[n]==array[i])
return false;
}
return true ;
}
public void cal() {
double first=array[1];
double second=array[2]/array[3];
double third=(array[4]*100+array[5]*10+array[6])/(array[7]*100+array[8]*10+array[9]);
if(Math.abs(first+second+third-10)<0.00001) {
cnt++;
}
}
}