AcWing 1209. 带分数
原题链接
简单
作者:
不知名路人
,
2021-04-11 10:16:55
,
所有人可见
,
阅读 361
import java.util.Scanner;
public class Main {
static int N=10;
static int n,count;
static int[] st=new int[10];
static boolean[] used=new boolean[N];
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
n=in.nextInt();
dfs(1);
System.out.println(count);
}
static void dfs(int u){
if(u==10){
//切割数组得a,b,c;
for(int i=1;i<=9;i++){
for(int j=i+1;j<=9;j++){
int a=add(1,i);
int b=add(i+1,j);
int c=add(j+1,9);
if(n*c==a*c+b){
count++;
}
}
}
}
//全排
for(int i=1;i<=9;i++){
if(!used[i]){
st[u]=i;
used[i]=true;
dfs(u+1);
st[u]=0;
used[i]=false;
}
}
}
static int add(int l,int r){
int res=0;
for(int i=l;i<=r;i++){
res = res*10+st[i];
}
return res;
}
}