1. 程式人生 > >洛谷訓練P1008(循環+暴力)

洛谷訓練P1008(循環+暴力)

輸出 round ack class 訓練 枚舉 inf for pan

技術分享圖片

 1 #include<stdio.h>
 2 #include<string.h>
 3 int a[10];
 4 int main(){
 5     for (int x=123;x<=329;x++){     //枚舉
 6         int i=x,j=x*2,k=x*3;
 7         int o=i,p=j,q=k;
 8         int flag=0;                         //清零
 9         memset(a,0,sizeof(a));    //使數組a中所有存放內容的值全為0 
10 while(i > 0){ //取數 11 a[i%10]++; 12 i/=10; 13 } 14 if(flag==1) continue; 15 while(j > 0){ 16 a[j%10]++; 17 j/=10; 18 } 19 while(k > 0){ 20 a[k%10]++; 21 k/=10
; 22 } 23 for (int w=1;w<=9;w++){ //判斷 24 if(a[w]!=1) flag=1; 25 } 26 if(flag==0) printf("%d %d %d\n",o,p,q); //輸出 27 } 28 return 0; 29 }

簡單的暴力枚舉題,唯一需註意的是要每次清零

//每次循環時設定滿足1:2:3倍數關系的三個數字,巧妙地讓a[x]中的x分別代表數字1~9,每次初始值清零,出現一次+1,最後用if(a[w] == 1)判斷每個數字出現的次數,如果都為1則輸出o,p,q

洛谷訓練P1008(循環+暴力)