Bootstrap

算法练习-三连击

题目描述

将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。

输出输出

无输入
输出:
192 384 576
219 438 657
273 546 819
327 654 981

注意

1.题目中的第一句话是一个坑。将1-9这三个数分成三组 所以1-9每个数字出现一次像 123 456 789这样
2.最简单的就是分离出三个三位数的每位9个数字,相加=1+2+…+9,相乘=1*2…*9
3.最简单的满足一二三倍关系就简单了。

代码实现

#include <stdio.h>
int main()
{
    int a,b,c;
    for(a=123;a<=333;a++)
            {
                b=a*2;
                c=a*3;
                if((a/100+a/10%10+a%10+b/100+b/10%10+b%10+c/100+c/10%10+c%10==1+2+3+4+5+6+7+8+9)&&((a/100)*(a/10%10)*(a%10)*(b/100)*(b/10%10)*(b%10)*(c/100)*(c/10%10)*(c%10)==(1)*(2)*(3)*(4)*(5)*(6)*(7)*(8)*(9)))
                    printf("%d %d %d\n",a,b,c);
            }
    return 0;
}
;