暴力求解法
题目大概是:给出n,输出所有满足abcde/fghij=n的等式。
直接循环枚举所有可能情况,然后判断有没有重复的数字,如果没有,输出。
由于忘记判断abcde是否有重复被卡了一次~~
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int wow,ans;
int k[10]={0,1,2,3,4,5,6,7,8,9};
int a,b,c,d,e,a2,b2,c2,d2,e2;
bool l[10];
bool bj(){
if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e) return 0;
if(a2==b2||a2==c2||a2==d2||a2==e2||b2==c2||b2==d2||b2==e2||c2==d2||c2==e2||d2==e2) return 0;
l[a]=1;
l[b]=1;
l[c]=1;
l[d]=1;
l[e]=1;
if(l[a2]==0 && l[b2]==0 && l[c2]==0 && l[d2]==0 && l[e2]==0 ){
memset(l,0,sizeof(l));
return 1;
}
else{
memset(l,0,sizeof(l));
return 0;
}
}
int main(){
cin>>n;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++)
for(e=0;e<10;e++){
wow=a*10000+b*1000+c*100+d*10+e;
if(wow%n==0){
wow=wow/n;
a2=wow/10000%10;
b2=wow/1000%10;
c2=wow/100%10;
d2=wow/10%10;
e2=wow/1%10;
if(bj()==1) {
ans++;
cout<<a<<b<<c<<d<<e<<"/"<<a2<<b2<<c2<<d2<<e2<<"="<<n<<endl;
}
}
}
cout<<ans<<endl;
}