[P1008] 三连击

    科技2022-08-05  101

    应该比较好懂吧…用了大量define
    #include<stdio.h> #define G1(A) A/1 /* 取个位数 */ #define G2(A) A/10 /* 取百位数 */ #define G3(A) A/100 /* 取千位数 */ #define DouBuDeng(A) ((G1(A)!=G2(A))&&(G1(A)!=G3(A))&&(G2(A)!=G3(A))) /* 判断数字自身是否有重复 */ #define BuHanChongFu(A,B) ((G1(A)!=G1(B))&&(G1(A)!=G2(B))&&(G1(A)!=G3(B))&&(G2(A)!=G1(B))&&(G2(A)!=G2(B))&&(G2(A)!=G3(B))&&(G3(A)!=G1(B))&&(G3(A)!=G2(B))&&(G3(A)!=G3(B))) /* 判断一个数字是否和另一个数字有重复 */ int main(){ for(int b=100;b<1000;b++){ if((DouBuDeng(b)&&DouBuDeng(b*2)&&DouBuDeng(b*3))&&BuHanChongFu(b,b*2)&&BuHanChongFu(b,b*3)&&BuHanChongFu(b*2,b*3)) (BuHanChongFu(b,0)&&BuHanChongFu(b*2,0)&&BuHanChongFu(b*3,0))?printf("%d %d %d\n",b,b*2,b*3):1; } /* 过滤掉结果含0的数字 */ }
    Processed: 0.041, SQL: 8