1. 程式人生 > >【UASCO】牛式

【UASCO】牛式

int main(void){
    int n,x;
    int sum=0;
    int a[10]={0};  //初始化0~9 不被使用
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&x);
        a[x]=1;     //使輸入的數使用的狀態改變為被使用,方便後面的判斷
    }
    for(int i=100;i<1000;i++){   //判斷i是三位數
        for(int j=10;j<100;j++){   //判斷j是兩位數
            if(a[i%10]==1&&a[i%100/10]==1&&a[i/100]==1&&a[j%10]==1&&a[j/10]==1&&100<i*(j%10)&&i*(j%10)<1000&&100<i*(j/10)&&i*(j/10)<1000&&i*j>1000&&i*j<10000){     //判斷i*j是四位數 並判斷每位的數是否是輸入的數
                int c=i*j,d=i*(j%10),e=i*(j/10);
                if(a[c%10]==1&&a[c/10%10]==1&&a[c/100%10]==1&&a[c/1000]==1&&a[d%10]==1&&a[d%100/10]==1&&a[d/100]==1&&a[e%10]==1&&a[e%100/10]==1&&a[e/100]==1){    //判斷每位的數是否是輸入的數

                    sum++;
                }
            }
        }
    }
    printf("%d\n",sum);
    return 0;
}