liaoxiangkui @ 2024-11-30 20:17:33
#include<bits/stdc++.h>
using namespace std;
int b[10];
void go(int x){
while(x){
b[x%10]=1;
x/=10;
}
}
bool check(int x,int y,int z){
memset(b,0,sizeof(b));
if(y>1000||z>1000){
return 0;
}
go(x);
go(y);
go(z);
for(int i=1;i<=9;i++){
if(b[i]==0){
return 0;
}
}
return 1;
}
int main (){
int A,B,C,x,y,z,sum=0;
cin>>A>>B>>C;
for(int i=123;i<=978;i++){
x=i,y=i*B,z=i*C;
if(check(x,y,z)){
cout<<x<<" "<<y<<" "<<z<<" "<<endl;
sum++;
}
}
if(sum==0) cout<<"No!!!";
return 0;
}
by 123rrc @ 2024-11-30 21:22:25
提供一组 hack 数据:
input:
981 234 567
answer:
981 234 567
你的程序会输出 No!!!
,原因是你没有考虑到
正确的写法应该是枚举
by 123rrc @ 2024-11-30 21:49:39
修正:若存在
by lichengxi1 @ 2024-12-08 09:11:01
x=i,y=i*B,z=i*C;
这是啥?不应该是x=i*A,y=i*B,z=i*C
么