1149: 组合三位数之二

题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。

输入

输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。

样例输出192 384 576
219 438 657

#include<stdio.h>
int panduan(int a,int b,int c);
int main(){
       int q;
      for(q=123;q<333;q++){
        int p=q*2;
        int m=q*3;
        if(panduan(q,p,m)==1)
        printf("%d %d %d\n",q,p,m);
        }
       return 0;
}
int panduan(int a,int b,int c){
        int p[9]={0};
        while(a){
         p[a%10-1]++;
         a/=10;
        }
         while(b){
         p[b%10-1]++;
         b/=10;
        } 
         while(c){
         p[c%10-1]++;
         c/=10;
        }
         for(int i=0;i<9;i++)
         if(p[i]==0||p[i]>1)
         return 0;
         return 1;
}

猜你喜欢

转载自blog.csdn.net/weixin_43731933/article/details/84891997