#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>usingnamespace std;constint N =10;int n;bool st[N], backup[N];int ans;boolcheck(int a,int c){longlong b = n *(longlong)c - a * c;if(!a ||!b ||!c)returnfalse;memcpy(backup, st,sizeof st);//递归memcpy,不能开太大while(b){int x = b %10;// 取个位
b /=10;// 个位删掉if(!x || backup[x])returnfalse;
backup[x]=true;}for(int i =1; i <=9; i ++)if(!backup[i])returnfalse;returntrue;}voiddfs_c(int u,int a,int c){if(u >9)return;if(check(a, c)) ans ++;for(int i =1; i <=9; i ++)if(!st[i]){
st[i]=true;dfs_c(u +1, a, c *10+ i);
st[i]=false;}}voiddfs_a(int u,int a){if(a >= n)return;if(a)dfs_c(u, a,0);for(int i =1; i <=9; i ++)if(!st[i]){
st[i]=true;dfs_a(u +1, a *10+ i);
st[i]=false;}}intmain(){
cin >> n;dfs_a(0,0);
cout << ans << endl;return0;}
posted on
2020-09-21 19:26谁是凶手1703
阅读(92)
评论(0)
收藏举报