https://vjudge.net/problem/UVA-725
水题,然而一直PE ~。~
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
#include<math.h>
#include<string>
#include<string.h>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<set>
#include<stack>
#include <sstream>
//#include <Eigen/Dense>
//#include <Eigen/Geometry>
//using namespace Eigen;
using namespace std;
using namespace std;
int n, cnt = 0;
int dp[10];
int flag = 0;
void dfs(int cur,string s)
{
if (cur == 5)
{
int t = atoi(s.c_str()) * n;
if (t >= 100000 || t < 10000)
return;
string s2 = to_string(t);
for (char i = '0'; i <= '9'; i++)
if (!count(s.begin(), s.end(), i) && !count(s2.begin(), s2.end(), i))
return;
printf("%s / %s = %d\n", s2.c_str(), s.c_str(), n);
cnt++;
return;
}
for (char i = '0'; i <= '9'; i++)
{
if (!dp[i])
{
dp[i] = 1;
s.push_back(i);
dfs(cur + 1, s);
s.pop_back();
dp[i] = 0;
}
}
return;
}
int main()
{
while (cin >> n && n)
{
if (flag)
cout << endl;
flag++;
cnt = 0;
memset(dp, 0, sizeof(dp));
string s;
dfs(0,s);
if (!cnt)
printf("There are no solutions for %d.\n", n);
}
return 0;
}