霹雳搅屎棍 @ 2018-08-30 17:11:14
不知道可不可行,vist和p分别是在本次循环中有没有用到这个数和接下来的三位数中有没有用到这个数
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int a,b,c;
int p[10]={0,1,2,3,4,5,6,7,8,9};
bool vis;
bool vist[10];
int main(int argc, char** argv) {
scanf("%d%d%d",&a,&b,&c);
for(int i=111;i<=999;i++){
memset(vist,0,sizeof(vist));
int x,y,z;
x=i/100;
y=i/10%10;
z=i%10;
//printf("\t%d %d %d\n",x,y,z);
if(vist[x]||vist[y]||vist[z])
continue;
for(int m=1;m<=9;m++)
if(p[m]==x||p[m]==y||p[m]==z)
continue;
vist[x]=vist[y]=vist[z]=1;
int j=i/a*b;
x=j/100;
y=j/10%10;
z=j%10;
if(vist[x]||vist[y]||vist[z])
continue;
for(int m=1;m<=9;m++)
if(p[m]==x||p[m]==y||p[m]==z)
continue;
vist[x]=vist[y]=vist[z]=1;
int k=i/a*c;
x=k/100;
y=k/10%10;
z=k%10;
if(vist[x]||vist[y]||vist[z])
continue;
for(int m=1;m<=9;m++)
if(p[m]==x||p[m]==y||p[m]==z)
continue;
if(j>999||k>999)
break;
printf("%d %d %d\n",i,j,k);
vis=1;
}
if(!vis)
cout<<"No!!!"<<endl;
return 0;
}
by dinghongyu @ 2018-08-30 17:28:40
提交一下不就得了?
by Mikamedo @ 2018-08-30 17:39:14
@霹雳搅屎棍 哲学!哲学!
by 霹雳搅屎棍 @ 2018-08-31 15:10:57
@dinghongyu 这连样例都过不了啊
by 霹雳搅屎棍 @ 2018-08-31 15:11:59
@lyhokia
by lyhokia @ 2018-09-01 08:54:14
你这个也太长了吧。。还刷水题