提交时间:2024-12-15 16:25:46
运行 ID: 58749
#include <bits/stdc++.h> using namespace std; int b[10]; //存储9个数字是否被使用 void update(int m) { b[m % 10] = 1; b[m / 10 % 10] = 1; b[m / 100] = 1; } //检验x、y、z是否为3位数,且同时具备9个不同数位 bool check(int x, int y, int z) { memset(b, 0, sizeof(b)); //初始化为0 //将x、y、z中每一位用过的数字都记录下来 update(x); update(y); update(z); //如果1-9中存在没有用过的数字,说明当前组合不对 for(int i = 1; i <= 9; i ++) if(b[i]==0) return 0; return 1; } int main( ) { long long A,B,C,x,y,z,cnt=0; cin>>A>>B>>C; //枚举其中一个数 for(z = 123; z <= 987; z ++) { //判断对应的x和y是否为整数,如果不是整数,就说明当前xyz不是要找的解 if(A * z % C|| B * z % C) continue; x = A * z / C; y = B * z / C; //如果x、y、z是3位数,且同时具备9个不同数位,说明找到一个解 if(check(x,y,z)) { cout<<x<<" "<<y<<" "<<z<<endl; cnt ++; } } if(!cnt) cout<<"No!!!"; return 0; }