简单枚举,枚举前先想想怎么列才能列出比较少的运算量,同时如果不考虑时间的话,考虑写出比较容易写的代码也是挺重要的~
#include <iostream>
#include <iomanip>
using namespace std;
bool abc(int a)
{
int num[] = {0,0,0,0,0,0,0,0,0,0};
for(int m = 0;m < 10;m++)
if(++num[a%10] > 1)
return false;
else a /= 10;
return true;
}
int main()
{
int n,sum = 0;
while(cin >> n)
{
for(int m = 1265;m <= 49999;m++)
{
sum = m * n;
if(sum < 100000 && abc(sum+m*100000))
cout << setfill('0')<< setw(5) << sum << '/' << setfill('0')<< setw(5) << m << '=' << n << endl;;
}
}
return 0;
}