//纯暴力,无优化
C++ 代码
#include"iostream"
#include"vector"
using namespace std;
bool vis[10]= {false};
int ans[10];
int n,res=0;
bool check(int i,int j,int k){
int a=0,b=0,c=0,x=i;
for(;x<i+j;x++){
b=b*10+ans[x];
}
for(;x<i+j+k;x++){
c=c*10+ans[x];
}
if(b%c!=0) return false;
for(x=0;x<i;x++){
a = a*10+ans[x];
}
if(b/c+a == n) return true;
return false;
}
void dfs(int step){
if(step==9){
for(int i=1;i<=7;i++){
for(int j=1;j<9-i;j++){
int k = 9-i-j;
if(check(i,j,k)) ++res;
}
}
}
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=true;
ans[step]=i;
dfs(step+1);
vis[i]= false;
}
}
}
int main(){
cin>>n;
dfs(0);
cout<<res;
return 0;
}