洛谷 P1008 [NOIP 1998 普及组] 三连击
枚举,反正就那么几个数字,暴力判断很快的。
AcCode:
#include<iostream>
using namespace std;
bool check(int a, int b, int c){
bool st[10] = {false};
while(a){
if(st[a % 10] || a % 10 == 0) return false;
st[a % 10] = true;
a /= 10;
}
while(b){
if(st[b % 10] || b % 10 == 0) return false;
st[b % 10] = true;
b /= 10;
}
while(c){
if(st[c % 10] || c % 10 == 0) return false;
st[c % 10] = true;
c /= 10;
}
return true;
}
int main(){
for(int i = 123; i <= 987; i++){ //最小值就是123,最大值不用管,随便给一个,不过i * 3最大值不超过987
if(i * 3 > 987) break;
if(check(i, i * 2, i * 3)) cout << i << " " << i * 2 << " " << i * 3 << endl;
}
return 0;
}