有点长,不知道有没有更简洁的代码。
#include <iostream>
using namespace std;
int s[10]={0};
bool cheak()
{
for( int i=0 ; i<10 ; ++i )
{
if( s[i] > 1 )return 0;
}
return 1;
}
int main()
{
int a,b,c,d,e;
int n;
cin>>n;
for( a=0; a<=9 ; a++ )
for( b=0; b<=9 ; b++ )
for( c=0; c<=9 ; c++ )
for( d=0; d<=9 ; d++ )
for( e=0; e<=9 ; e++ )
{
s[a]++;
s[b]++;
s[c]++;
s[d]++;
s[e]++;
if( cheak() )
{
int t=e+d*10+c*100+b*1000+a*10000;
if( t%n==0 )
{
int val=t/n;
for( int i=0 ; i<5 ; ++i )
{
int mod=val%10;
val/=10;
s[mod]++;
}
if( cheak() )
{
printf("%05d/%05d=%d\n",t,t/n,n);
}
}
}
memset(s,0,sizeof(s));
}
system("pause");
return 0;
}