【UASCO】牛式
阿新 • • 發佈:2019-01-11
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;
}
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;
}