算法1
(暴力枚举) $O(n^2)$
利用库函数实现全排列 , 然后暴力判断 ;
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 10 ;
int ans , n ;
// a + b / c = n ;
// a * c + b = n * c
int a[N] , tag[N] ;
int calc(int l , int r){
int res = 0 ;
for(int i=l;i<=r;i++) res = res * 10 + a[i] ;
return res ;
}
int main(){
cin >> n ;
for(int i=1;i<N;i++) a[i] = i ;
do {
for(int i=2;i<=7;i++){
for(int j=i;j<=8;j++){
int a = calc(1,i-1) , b = calc(i,j) , c = calc(j+1,9) ;
if(a*c + b == n * c) ans ++ ;
}
}
} while (next_permutation(a+1,a+N));
cout << ans << endl ;
return 0 ;
}