三连击
题目描述
将1,2,3,..,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。
#include <iostream>
int main() {
int x, y, z;
for (int x = 123; x < 333; ++x) {
y = 2*x;
z = 3*x;
if ((x/100 + x/10%10 + x%10 + y/100 + y/10%10 + y%10 + z/100 + z/10%10 + z%10)==(1+2+3+4+5+6+7+8+9) &&
((x/100)*(x/10%10)*(x%10)*(y/100)*(y/10%10)*(y%10)*(z/100)*(z/10%10)*(z%10))==(1*2*3*4*5*6*7*8*9))
std::cout << x << " " << y << " " << z << std::endl;
}
return 0;
}
判断原理:2个集合内所有数相加相乘结果一样,2个集合的内容一样