暴力解法:枚举全排列,划分a,b,c,进行判断
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static boolean[] st = new boolean[10];
static int[] ways = new int[10];
static int n;
static int count;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
n = scan.nextInt();
dfs(0);
System.out.println(count);
scan.close();
}
private static void dfs(int u) {
// TODO Auto-generated method stub
if(u == 9) {
calc(ways);
}
for(int i = 1;i <=9;i++) {
if(!st[i]) {
st[i] = true;
ways[u] = i;
dfs(u + 1);
st[i] = false;;
}
}
}
private static void calc(int[] ways) {
// TODO Auto-generated method stub
for(int i = 0;i < 7;i++) {
for(int j = i+ 1;j < 8;j++) {
int a = find(0,i);
int b = find(i+1,j);
int c = find(j + 1,8);
if(c * n == c * a + b) {
count++;
}
}
}
}
private static int find(int l, int r) {
int sum = 0;
for(int i = l;i <= r;i ++) {
sum = sum * 10 + ways[i];
}
return sum;
}
}