这个算式中A ~ I 代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
public class Main {
static int a[]={1,2,3,4,5,6,7,8,9};
static int ans;
public static void main(String[] args) {
// TODO Auto-generated method stub
f(0);
System.out.println(ans);
}
private static void f(int b) {
// TODO Auto-generated method stub
if (b==9) {
if (check()) {
ans++;
}
}
//全排列
for (int i = b; i <9; i++) {
{int t=a[i];a[i]=a[b];a[b]=t;}
f(b+1);
//回溯
{int t=a[i];a[i]=a[b];a[b]=t;}
}
}
private static boolean check() {
// TODO Auto-generated method stub
int x=a[3]*100+a[4]*10+a[5];
int y=a[6]*100+a[7]*10+a[8];
//用到了通分(判断式子成立并且和为10)
if ((a[1]*y+a[2]*x)%(a[2]*y)==0 && a[0]+(a[1]*y+a[2]*x)/(a[2]*y)==10){
return true;
}
return false;
}
}