(新手村问题)一个有趣的条件判断

三连击

题目描述

将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个集合的内容一样

猜你喜欢

转载自www.cnblogs.com/codemeta-2020/p/12332578.html
今日推荐