p1618三连击升级版,枚举
主要注意一点:要检查先乘后除的那几项是否可以整除,没有余数
#include <bits/stdc++.h>
using namespace std;
int a,b,c,vis[10],flag=0;
bool isok(int x){
for(int i=0;i<3;i++){
if(vis[x%10]) return false;
vis[x%10]++;
x/=10;
}
return vis[0]==0;
}
int main(int argc, char** argv) {
cin>>a>>b>>c;
for(int i=123;i<=987*a/c;i++){
memset(vis,0,sizeof(vis));
if(isok(i)&&isok(i*b/a)&&i*b%a==0&&isok(i*c/a)&&i*c%a==0)//if(isok(i)&&isok(i/a*b)&&isok(i/a*c)) 先乘后除
flag=1, cout<<i<<" "<<i*b/a<<" "<<i*c/a<<endl;//flag=1, cout<<i<<" "<<i/a*b<<" "<<i/a*c<<endl;
}
if(flag==0) cout<<"No!!!"<<endl;
return 0;
}
网易游戏公司福利 637人发布