观察下面的加法算式:
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一)
public class Main {
static int[] book = new int[10];
static int[] res = new int[8];
public static void main(String[] args) {
dfs(0);
}
/*
* 祥瑞生辉三羊献气 res[0]~res[7]
*/
static void dfs(int idx) {
if (idx == 8) {
if (check()) {
for (int i : res)
System.out.print(i + " ");
System.out.println();
}
return;
}
for (int i = 0; i <= 9; i++) {
if (book[i] == 0) {
book[i] = 1;
res[idx] = i;
dfs(idx + 1);
book[i] = 0;
}
}
}
static boolean check() {
int a = res[0] * 1000 + res[1] * 100 + res[2] * 10 + res[3];
int b = res[4] * 1000 + res[5] * 100 + res[6] * 10 + res[1];
int c = res[4] * 10000 + res[5] * 1000 + res[2] * 100 + res[1] * 10 + res[7];
return a + b == c && res[0] != 0 && res[4] != 0;
}
}
哥们代码简洁易懂太牛了