森森鸭 @ 2019-08-02 17:22:28
话不多说直接上代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x,y,z;
cin>>x>>y>>z;
int d,e,f,g,h,i;
int xb,yb,zb;
int flag=0;
for(int a=1;a<=9;a++)
{
for(int b=1;b<=9;b++)
{
if(b==a) continue;
for(int c=1;c<=9;c++)
{
if(c==a||c==b) continue;
xb=a*100+b*10+c;yb=y*xb;zb=z*xb;
if(yb>987||zb>987) continue;
f=yb%10;
if(f==a||f==b||f==c) continue;
yb/=10;e=yb%10;
if(e==a||e==b||e==c||e==f) continue;
yb/=10;d=yb%10;
if(d==a||d==b||d==c||d==e||d==f) continue;
i=zb%10;
if(i==a||i==b||i==c||i==d||i==e||i==f) continue;
zb/=10;h=zb%10;
if(h==a||h==b||h==c||h==d||h==e||h==f||h==i) continue;
zb/=10;g=zb%10;
if(g==a||g==b||g==c||g==d||g==e||g==f||g==h||g==i) continue;
cout<<a<<b<<c<<" ";
cout<<d<<e<<f<<" ";
cout<<g<<h<<i<<endl;
flag=1;
}
}
}
if(flag==0) cout<<"NO!!!";
return 0;
}
by 森森鸭 @ 2019-08-02 17:23:36
丑陋的代码
by lygmh @ 2019-08-02 17:36:51
@森森鸭 话不多说直接上代码
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int x1,x2,x3;
bool fff=true;
cin>>x1>>x2>>x3;
long long int a,c;
bool b[10],p;
for(int x=0;x<=9;x++) {
for(int y=0;y<=9;y++){
for(int z=0;z<=9;z++){
memset(b,false,sizeof(b));
p=true;
a=(1000000*x1+1000*x2+x3)*(x*100+y*10+z);
c=a;
for(int i=0;i<9;i++){
b[c%10]=true;
c=c/10;
}
for(int i=1;i<=9;i++){
if(b[i]==false)
p=false;
}
if (p&&(a/1000000)<(a/1000%1000)&&(a/1000%1000)<(a%1000)){
cout<<a/1000000<<" "<<a/1000%1000<<" "<<a%1000<<endl;
fff=false;
}
}
}
}
if(fff)
cout<<"No!!!"<<endl;
return 0;
}
丑陋的代码
by lygmh @ 2019-08-02 17:38:08
就是枚举,枚举第一个三位数。算出第二个和第三个。再判断。
by VTloBong @ 2019-08-02 17:42:30
用DFS 吧,
码量小
by 森森鸭 @ 2019-08-02 18:17:33
@123456L 众所周知,因为dfs用的脑袋疼所以暴力枚举
by 森森鸭 @ 2019-08-02 18:17:49
@123456L 蒟蒻的卑微世界
by VTloBong @ 2019-08-02 19:16:01
@森森鸭 因为暴力枚举用的手疼所以dfs
by 森森鸭 @ 2019-08-02 19:22:02
@123456L 找到问题了,我一直傻傻以为A为1,智商堪忧现场