天天看點

洛谷P1008 三連擊

一、題目背景

   本題為送出答案題,您可以寫程式或手算在本機上算出答案後,直接送出答案文本,也可送出答案生成程式。  題目描述  将1,2,…,9共9個數分成三組,分别組成三個三位數,且使這三個三位數構成1:2:3的比例,試求出所有滿足條件的三個三位數。  

   輸入輸出格式  輸入格式: 木有輸入  輸出格式: 若幹行,每行3個數字。按照每行第一個數字升序排列。

 輸出樣例:     192   384  576     *     *    *     ……………………     *     *     *

二、分析:        簡單的暴力枚舉題,唯一需注意的是要每次清零,注意:本題最難的地方在于9個數不能重複

三、代碼:        #include<stdio.h>     #include<string.h>     int a[10];     int main(){        for (int x=123;x<=329;x++){     //枚舉         int i=x,j=x*2,k=x*3;         int o=i,p=j,q=k;         int flag=0;                         //清零         memset(a,0,sizeof(a));         while(i>0){                        //取數             a[i%10]++;             i/=10;         }         if(flag==1) continue;         while(j>0){             a[j%10]++;             j/=10;         }         while(k>0){             a[k%10]++;             k/=10;         }         for (int w=1;w<=9;w++){  //判斷             if(a[w]!=1) flag=1;         }         if(flag==0) printf("%d %d %d\n",o,p,q);  //輸出     }     return 0; }